/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package org.cip.esymons.colegiatura.beans;


import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import org.apache.myfaces.custom.fileupload.UploadedFile;
import org.cip.esymons.colegiatura.adapters.RutaCarpetaReporte;
import org.cip.esymons.colegiatura.bc.CitaDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoDeporteDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoEspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.ColegiadoImagenDelegate;
import org.cip.esymons.colegiatura.bc.DerechosAutorDelegate;
import org.cip.esymons.colegiatura.bc.DireccionDelegate;
import org.cip.esymons.colegiatura.bc.DirectivosDelegate;
import org.cip.esymons.colegiatura.bc.EscuelaDelegate;
import org.cip.esymons.colegiatura.bc.EspCapDelegate;
import org.cip.esymons.colegiatura.bc.EspecialidadDelegate;
import org.cip.esymons.colegiatura.bc.FacultadDelegate;
import org.cip.esymons.colegiatura.bc.FormacionProfesionalDelegate;
import org.cip.esymons.colegiatura.bc.NacionalidadDelegate;
import org.cip.esymons.colegiatura.bc.PagoColegiaturaDelagate;
import org.cip.esymons.colegiatura.bc.PaisDelegate;
import org.cip.esymons.colegiatura.bc.PersonaJuridicaDelegate;
import org.cip.esymons.colegiatura.bc.PersonaNaturalDelegate;
import org.cip.esymons.colegiatura.bc.PreInscripcionDelegate;
import org.cip.esymons.colegiatura.bc.TelefonoDelegate;
import org.cip.esymons.colegiatura.bc.TituloDelegate;
import org.cip.esymons.colegiatura.bc.UniversidadDelegate;
import org.cip.esymons.colegiatura.bc.solicitanteDelegate;
import org.cip.esymons.colegiatura.be.Cita;
import org.cip.esymons.colegiatura.be.Colegiado;
import org.cip.esymons.colegiatura.be.ColegiadoDeporte;
import org.cip.esymons.colegiatura.be.ColegiadoImagen;
import org.cip.esymons.colegiatura.be.DerechosAutor;
import org.cip.esymons.colegiatura.be.EstadoCita;
import org.cip.esymons.colegiatura.be.FormacionProfesional;
import org.cip.esymons.colegiatura.be.Preinscripcion;
import org.cip.esymons.colegiatura.be.TipoColegiado;
import org.cip.esymons.general.be.Capitulo;
import org.cip.esymons.general.be.ColegiadoEspecialidad;
import org.cip.esymons.general.be.DireccionPersona;
import org.cip.esymons.general.be.Directivos;
import org.cip.esymons.general.be.Escuela;
import org.cip.esymons.general.be.Especialidad;
import org.cip.esymons.general.be.EspecialidadCapitulo;
import org.cip.esymons.general.be.Facultad;
import org.cip.esymons.general.be.Nacionalidad;
import org.cip.esymons.general.be.Pais;
import org.cip.esymons.general.be.PersonaJuridica;
import org.cip.esymons.general.be.PersonaNatural;
import org.cip.esymons.general.be.TelefonoSolicitante;
import org.cip.esymons.general.be.Titulo;
import org.cip.esymons.general.be.Universidad;
import org.cip.esymons.general.util.ControladorAbstracto;
import org.cip.esymons.general.util.EnviaEmail;

/**
 *
 * @author ADMINISTRADOR
 */
public class preInscripcionController {

    private PreInscripcionDelegate delegado;
    private PersonaJuridicaDelegate delegadoJuridico;
    private PersonaNaturalDelegate delegadoNatural;
    private FormacionProfesionalDelegate delegadoFormacion;
    private DerechosAutorDelegate delegadoDerechoAutor;
    private ColegiadoDelegate delegadoColegiado;
    private CitaDelegate delegadoCita;
    private DireccionDelegate delegadoDireccion;
    private TelefonoDelegate delegadoTelefono;
    private EspecialidadDelegate delegadoEspecialidad;
    private EscuelaDelegate delegadoEscuela;
    private FacultadDelegate delegadoFacultad;
    private UniversidadDelegate delegadoUniversidad;
    private EspCapDelegate delegadoEspCap;
    private ColegiadoEspecialidadDelegate delegadoColEsp;
    private TituloDelegate delegadoTitulo;
    private PagoColegiaturaDelagate delegadoPagoColegiatura;
    private ColegiadoDeporteDelegate delegadoColDeporte;
    private ColegiadoImagenDelegate delegadoImagen;
    private solicitanteDelegate delegadoSolicitante;
    private NacionalidadDelegate delegadoNacionalidad;
    private PaisDelegate delegadoPais;

    private Preinscripcion preinscrip,preInscripcionWeb;
    private PersonaNatural perNatural,persona;
    private PersonaJuridica perJuridica,pj;
    private FormacionProfesional formProf;
    private DireccionPersona direccionPersona,direccionEmpresa;
    private DireccionPersona direccionEmp,direccion;
    private TelefonoSolicitante telefonoPer,celularPer,telefonoEmp,telefono;
    private DerechosAutor derechoAutor;
    private Cita cita;
    private Colegiado colegiado;
    private Nacionalidad nacion;
    private Pais pais;
    private TipoColegiado tipocolegiado;
    private EspecialidadCapitulo espCap,espeCapitulo,espCap2;
    private EstadoCita estado;
    private Titulo titulo;
    private Especialidad especialidad,espDestino;
    private Escuela escuela;
    private Facultad facultad;
    private Universidad universidad,uniDestino;
    private ColegiadoEspecialidad colEsp, colEsp2;
    private ColegiadoDeporte colegiadoDeporte;
    private ColegiadoImagen colImagen;
    private Colegiado reportaColegiado;

    private boolean  estados = false;
    private String id;
    private String dni;
    private Capitulo codigoCap,capitulo ;
    private String dirImagen;

    private Especialidad especial;

    private boolean nuevoTitulo;

    private String tabber ;
    private String apePat,apeMat, nombre,ruc;
    private boolean soloColegiados;
    List<PersonaNatural> listaPreInscritos;
    List<EspecialidadCapitulo> listaEspCap;
    List<ColegiadoDeporte> listaColegiadoDeporte;
    private Date FechaPagoColegiatura;
    private int coutas;
    private boolean exito;
    private boolean generarPago;
    private boolean deshabilita;

    private Integer cantidadTotal;
    private Integer cantidadNuevos;
    private Integer cantidadRenovacion;
    private boolean convenio;
    private Date fechaRegistro;

    private String genCodigo, autoCodigo,destino;
    private boolean activo;
    List<ColegiadoImagen> listaColegiadoImagen;
    List<PersonaNatural> listaSolicitantes;
    List<TelefonoSolicitante> listaTelefonoPreInscrito;
    List<TelefonoSolicitante> listaTelefonoEmpresas;
    private boolean PersonaEncontrado,DireccionEncontrada,telefonoEncontrado,celularEncontrado;
    private boolean btnpersonal,btndomicilio,btnformacion,btnlaboral,btncolegiado;
    private String error;
    private boolean chekDNI;
    private Long pjCodigo;
    private Long codigoColegiado;
    private Integer tipoColegiado;
    private String nombreColegiado;
    private String DNIColegiado;
    private String emailPreInscrito;
    private Boolean noHallado;
    private Boolean cargarDatos;
    private Boolean pagoColegiatura;

    private String nombrePersona,dniPersona,emailPersona;
    private Integer tipoPersona;

    //ultimos cambios
    private String departamento;
    private String provincia;
    private String universidad1;
    private String uniNombre,espNombre;
    private Integer anchoFoto;

    public preInscripcionController() {
        
        delegado = new PreInscripcionDelegate();
        delegadoJuridico = new PersonaJuridicaDelegate();
        delegadoNatural = new PersonaNaturalDelegate();
        delegadoFormacion = new FormacionProfesionalDelegate();
        delegadoDerechoAutor = new DerechosAutorDelegate();
        delegadoColegiado = new ColegiadoDelegate();
        delegadoCita = new CitaDelegate();
        delegadoPagoColegiatura = new PagoColegiaturaDelagate();
        delegadoColDeporte = new ColegiadoDeporteDelegate();

        delegadoDireccion = new DireccionDelegate();
        delegadoTelefono = new TelefonoDelegate();
        delegadoEspecialidad = new EspecialidadDelegate();
        especialidad = new Especialidad();
        delegadoEscuela = new EscuelaDelegate();
        escuela = new Escuela();
        delegadoFacultad = new FacultadDelegate();
        facultad = new Facultad();
        delegadoUniversidad = new UniversidadDelegate();
        universidad = new Universidad();
        delegadoTitulo = new TituloDelegate();
        titulo = new Titulo();

        delegadoEspCap = new EspCapDelegate();
        delegadoColEsp = new ColegiadoEspecialidadDelegate();
        colEsp = new ColegiadoEspecialidad();
        delegadoNacionalidad = new NacionalidadDelegate();
        delegadoPais = new PaisDelegate();

        preInscripcionWeb = new Preinscripcion();
        preinscrip = new Preinscripcion();
        formProf = new FormacionProfesional();
        derechoAutor = new DerechosAutor();
        cita = new Cita();
        colegiado = new Colegiado();
        nacion = new Nacionalidad();
        pais = new Pais();
        tipocolegiado = new TipoColegiado();
        colegiadoDeporte = new ColegiadoDeporte();

        espCap2 = new EspecialidadCapitulo();
        colEsp2 = new ColegiadoEspecialidad();

        perNatural = new PersonaNatural();
        direccionPersona = new DireccionPersona();
        telefonoPer = new TelefonoSolicitante();
        celularPer = new TelefonoSolicitante();

        perJuridica = new PersonaJuridica();
        pj = new PersonaJuridica();
        direccionEmpresa = new DireccionPersona();
        telefonoEmp = new TelefonoSolicitante();
        espCap = new EspecialidadCapitulo();
        estado = new EstadoCita();

        direccionEmp = new DireccionPersona();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();

        delegadoImagen = new ColegiadoImagenDelegate();
        colImagen = new ColegiadoImagen();

        codigoCap = new Capitulo();
        capitulo = new Capitulo();

//        dirImagen = "c:\\imgprueba\\";
        dirImagen = "/modulos/colegiatura/archivos/";
        tabber = "Personal";

        especial = new Especialidad();

        nuevoTitulo = false;

        delegadoSolicitante = new solicitanteDelegate();

        listaPreInscritos = new ArrayList<PersonaNatural>();
        listaPreInscritos = null;
        listaEspCap = new ArrayList<EspecialidadCapitulo>();
        listaColegiadoImagen = new ArrayList<ColegiadoImagen>();
        listaSolicitantes = new ArrayList<PersonaNatural>();
        listaColegiadoDeporte = new ArrayList<ColegiadoDeporte>();
        listaTelefonoPreInscrito = new ArrayList<TelefonoSolicitante>();
        listaTelefonoEmpresas = new ArrayList<TelefonoSolicitante>();
        exito = false;
        generarPago = false;
        deshabilita = false;
        activo = false;
        PersonaEncontrado = false;
        DireccionEncontrada = false;
        telefonoEncontrado = false;
        celularEncontrado = false;
        espeCapitulo = new EspecialidadCapitulo();
        btnpersonal = false;
        btndomicilio = false;
        btnformacion = false;
        btnlaboral = false;
        btncolegiado = false;
        error ="";
        chekDNI = false;
        noHallado = false;
        cargarDatos = null;
    }

    public void inicializa(){
               
        especialidad = new Especialidad();
        escuela = new Escuela();       
        facultad = new Facultad();       
        universidad = new Universidad();       
        titulo = new Titulo();       
        colEsp = new ColegiadoEspecialidad();        
        preinscrip = new Preinscripcion();
        formProf = new FormacionProfesional();
        derechoAutor = new DerechosAutor();
        cita = new Cita();
        colegiado = new Colegiado();
        nacion = new Nacionalidad();
        pais = new Pais();
        tipocolegiado = new TipoColegiado();
        colegiadoDeporte = new ColegiadoDeporte();
        espCap2 = new EspecialidadCapitulo();
        colEsp2 = new ColegiadoEspecialidad();
        perNatural = new PersonaNatural();
        direccionPersona = new DireccionPersona();
        telefonoPer = new TelefonoSolicitante();
        celularPer = new TelefonoSolicitante();
        perJuridica = new PersonaJuridica();
        pj = new PersonaJuridica();
        direccionEmpresa = new DireccionPersona();
        telefonoEmp = new TelefonoSolicitante();
        espCap = new EspecialidadCapitulo();
        estado = new EstadoCita();
        direccionEmp = new DireccionPersona();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();        
        colImagen = new ColegiadoImagen();
        codigoCap = new Capitulo();
        capitulo = new Capitulo();

//        dirImagen = "c:\\imgprueba\\";
        dirImagen = "/modulos/colegiatura/archivos/";
        tabber = "Personal";

        especial = new Especialidad();
        nuevoTitulo = false;      

        listaPreInscritos = new ArrayList<PersonaNatural>();
        listaPreInscritos = null;
        listaEspCap = new ArrayList<EspecialidadCapitulo>();
        listaColegiadoImagen = new ArrayList<ColegiadoImagen>();
        listaSolicitantes = new ArrayList<PersonaNatural>();
        listaColegiadoDeporte = new ArrayList<ColegiadoDeporte>();
        listaTelefonoPreInscrito = new ArrayList<TelefonoSolicitante>();
        listaTelefonoEmpresas = new ArrayList<TelefonoSolicitante>();
        exito = false;
        generarPago = false;
        deshabilita = false;
        activo = false;
        PersonaEncontrado = false;
        DireccionEncontrada = false;
        telefonoEncontrado = false;
        celularEncontrado = false;
        espeCapitulo = new EspecialidadCapitulo();
        btnpersonal = false;
        btndomicilio = false;
        btnformacion = false;
        btnlaboral = false;
        btncolegiado = false;
        error ="";
        chekDNI = false;
        noHallado = false;
        cargarDatos = null;

    }

    public Integer getAnchoFoto() {
        return anchoFoto;
    }

    public void setAnchoFoto(Integer anchoFoto) {
        this.anchoFoto = anchoFoto;
    }

    public Especialidad getEspDestino() {
        return espDestino;
    }

    public void setEspDestino(Especialidad espDestino) {
        this.espDestino = espDestino;
    }

    public String getUniNombre() {
        return uniNombre;
    }

    public void setUniNombre(String uniNombre) {
        this.uniNombre = uniNombre;
    }

    public Universidad getUniDestino() {
        return uniDestino;
    }

    public void setUniDestino(Universidad uniDestino) {
        this.uniDestino = uniDestino;
    }

    public String getUniversidad1() {
        return universidad1;
    }

    public void setUniversidad1(String universidad1) {
        this.universidad1 = universidad1;
    }

    public String getProvincia() {
        return provincia;
    }

    public void setProvincia(String provincia) {
        this.provincia = provincia;
    }

    public String getDepartamento() {
        return departamento;
    }

    public void setDepartamento(String departamento) {
        this.departamento = departamento;
    }

    public Boolean getPagoColegiatura() {
        return pagoColegiatura;
    }

    public void setPagoColegiatura(Boolean pagoColegiatura) {
        this.pagoColegiatura = pagoColegiatura;
    }


    public String getEmailPreInscrito() {
        return emailPreInscrito;
    }

    public void setEmailPreInscrito(String emailPreInscrito) {
        this.emailPreInscrito = emailPreInscrito;
    }

    public Integer getTipoPersona() {
        return tipoPersona;
    }

    public void setTipoPersona(Integer tipoPersona) {
        this.tipoPersona = tipoPersona;
    }

    public String getDniPersona() {
        return dniPersona;
    }

    public void setDniPersona(String dniPersona) {
        this.dniPersona = dniPersona;
    }

    public String getEmailPersona() {
        return emailPersona;
    }

    public void setEmailPersona(String emailPersona) {
        this.emailPersona = emailPersona;
    }

    public String getNombrePersona() {
        return nombrePersona;
    }

    public void setNombrePersona(String nombrePersona) {
        this.nombrePersona = nombrePersona;
    }

    public Boolean getCargarDatos() {
        return cargarDatos;
    }

    public void setCargarDatos(Boolean cargarDatos) {
        this.cargarDatos = cargarDatos;
    }

    public Preinscripcion getPreInscripcionWeb() {
        return preInscripcionWeb;
    }

    public void setPreInscripcionWeb(Preinscripcion preInscripcionWeb) {
        this.preInscripcionWeb = preInscripcionWeb;
    }

    public List<TelefonoSolicitante> getListaTelefonoEmpresas() {
        return listaTelefonoEmpresas;
    }

    public void setListaTelefonoEmpresas(List<TelefonoSolicitante> listaTelefonoEmpresas) {
        this.listaTelefonoEmpresas = listaTelefonoEmpresas;
    }

    public List<TelefonoSolicitante> getListaTelefonoPreInscrito() {
        return listaTelefonoPreInscrito;
    }

    public void setListaTelefonoPreInscrito(List<TelefonoSolicitante> listaTelefonoPreInscrito) {
        this.listaTelefonoPreInscrito = listaTelefonoPreInscrito;
    }

    public Colegiado getReportaColegiado() {
        return reportaColegiado;
    }

    public void setReportaColegiado(Colegiado reportaColegiado) {
        this.reportaColegiado = reportaColegiado;
    }

    public ColegiadoEspecialidad getColEsp2() {
        return colEsp2;
    }

    public void setColEsp2(ColegiadoEspecialidad colEsp2) {
        this.colEsp2 = colEsp2;
    }

    public EspecialidadCapitulo getEspCap2() {
        return espCap2;
    }

    public void setEspCap2(EspecialidadCapitulo espCap2) {
        this.espCap2 = espCap2;
    }

    public Boolean getNoHallado() {
        return noHallado;
    }

    public void setNoHallado(Boolean noHallado) {
        this.noHallado = noHallado;
    }

    public Long getCodigoColegiado() {
        return codigoColegiado;
    }

    public void setCodigoColegiado(Long codigoColegiado) {
        this.codigoColegiado = codigoColegiado;
    }

    public String getDNIColegiado() {
        return DNIColegiado;
    }

    public void setDNIColegiado(String DNIColegiado) {
        this.DNIColegiado = DNIColegiado;
    }

    public String getNombreColegiado() {
        return nombreColegiado;
    }

    public void setNombreColegiado(String nombreColegiado) {
        this.nombreColegiado = nombreColegiado;
    }

    public Integer getTipoColegiado() {
        return tipoColegiado;
    }

    public void setTipoColegiado(Integer tipoColegiado) {
        this.tipoColegiado = tipoColegiado;
    }

    public PersonaJuridica getPj() {
        return pj;
    }

    public void setPj(PersonaJuridica pj) {
        this.pj = pj;
    }

    public Long getPjCodigo() {
        return pjCodigo;
    }

    public void setPjCodigo(Long pjCodigo) {
        this.pjCodigo = pjCodigo;
    }

    public PaisDelegate getDelegadoPais() {
        return delegadoPais;
    }

    public void setDelegadoPais(PaisDelegate delegadoPais) {
        this.delegadoPais = delegadoPais;
    }

    public NacionalidadDelegate getDelegadoNacionalidad() {
        return delegadoNacionalidad;
    }

    public void setDelegadoNacionalidad(NacionalidadDelegate delegadoNacionalidad) {
        this.delegadoNacionalidad = delegadoNacionalidad;
    }

    public boolean getChekDNI() {
        return chekDNI;
    }

    public void setChekDNI(boolean chekDNI) {
        this.chekDNI = chekDNI;
    }

    public String getError() {
        return error;
    }

    public void setError(String error) {
        this.error = error;
    }

    public boolean getBtncolegiado() {
        return btncolegiado;
    }

    public void setBtncolegiado(boolean btncolegiado) {
        this.btncolegiado = btncolegiado;
    }

    public boolean getBtndomicilio() {
        return btndomicilio;
    }

    public void setBtndomicilio(boolean btndomicilio) {
        this.btndomicilio = btndomicilio;
    }

    public boolean getBtnformacion() {
        return btnformacion;
    }

    public void setBtnformacion(boolean btnformacion) {
        this.btnformacion = btnformacion;
    }

    public boolean getBtnlaboral() {
        return btnlaboral;
    }

    public void setBtnlaboral(boolean btnlaboral) {
        this.btnlaboral = btnlaboral;
    }

    public boolean getBtnpersonal() {
        return btnpersonal;
    }

    public void setBtnpersonal(boolean btnpersonal) {
        this.btnpersonal = btnpersonal;
    }

    public EspecialidadCapitulo getEspeCapitulo() {
        return espeCapitulo;
    }

    public void setEspeCapitulo(EspecialidadCapitulo espeCapitulo) {
        this.espeCapitulo = espeCapitulo;
    }
    
    public List<ColegiadoDeporte> getListaColegiadoDeporte() {
        return listaColegiadoDeporte;
    }

    public void setListaColegiadoDeporte(List<ColegiadoDeporte> listaColegiadoDeporte) {
        this.listaColegiadoDeporte = listaColegiadoDeporte;
    }
    
    public List<EspecialidadCapitulo> getListaEspCap() {
        return listaEspCap;
    }

    public void setListaEspCap(List<EspecialidadCapitulo> listaEspCap) {
        this.listaEspCap = listaEspCap;
    }

    public ColegiadoDeporte getColegiadoDeporte() {
        return colegiadoDeporte;
    }

    public void setColegiadoDeporte(ColegiadoDeporte colegiadoDeporte) {
        this.colegiadoDeporte = colegiadoDeporte;
    }

    public ColegiadoDeporteDelegate getDelegadoColDeporte() {
        return delegadoColDeporte;
    }

    public void setDelegadoColDeporte(ColegiadoDeporteDelegate delegadoColDeporte) {
        this.delegadoColDeporte = delegadoColDeporte;
    }

    public boolean getCelularEncontrado() {
        return celularEncontrado;
    }

    public void setCelularEncontrado(boolean celularEncontrado) {
        this.celularEncontrado = celularEncontrado;
    }

    public boolean getTelefonoEncontrado() {
        return telefonoEncontrado;
    }

    public void setTelefonoEncontrado(boolean telefonoEncontrado) {
        this.telefonoEncontrado = telefonoEncontrado;
    }

    public boolean getDireccionEncontrada() {
        return DireccionEncontrada;
    }

    public void setDireccionEncontrada(boolean DireccionEncontrada) {
        this.DireccionEncontrada = DireccionEncontrada;
    }

    public boolean getPersonaEncontrado() {
        return PersonaEncontrado;
    }

    public void setPersonaEncontrado(boolean PersonaEncontrado) {
        this.PersonaEncontrado = PersonaEncontrado;
    }

    public List<PersonaNatural> getListaSolicitantes() {
        return listaSolicitantes;
    }

    public void setListaSolicitantes(List<PersonaNatural> listaSolicitantes) {
        this.listaSolicitantes = listaSolicitantes;
    }

    public List<ColegiadoImagen> getListaColegiadoImagen() {
        return listaColegiadoImagen;
    }

    public void setListaColegiadoImagen(List<ColegiadoImagen> listaColegiadoImagen) {
        this.listaColegiadoImagen = listaColegiadoImagen;
    }

    public boolean getActivo() {
        return activo;
    }

    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    public String getAutoCodigo() {
        return autoCodigo;
    }

    public void setAutoCodigo(String autoCodigo) {
        this.autoCodigo = autoCodigo;
    }

    public String getGenCodigo() {
        return genCodigo;
    }

    public void setGenCodigo(String genCodigo) {
        this.genCodigo = genCodigo;
    }

    public Integer getCantidadNuevos() {
        return cantidadNuevos;
    }

    public void setCantidadNuevos(Integer cantidadNuevos) {
        this.cantidadNuevos = cantidadNuevos;
    }

    public Integer getCantidadRenovacion() {
        return cantidadRenovacion;
    }

    public void setCantidadRenovacion(Integer cantidadRenovacion) {
        this.cantidadRenovacion = cantidadRenovacion;
    }

    public Integer getCantidadTotal() {
        return cantidadTotal;
    }

    public void setCantidadTotal(Integer cantidadTotal) {
        this.cantidadTotal = cantidadTotal;
    }

    public boolean getConvenio() {
        return convenio;
    }

    public void setConvenio(boolean convenio) {
        this.convenio = convenio;
    }

    public Date getFechaRegistro() {
        return fechaRegistro;
    }

    public void setFechaRegistro(Date fechaRegistro) {
        this.fechaRegistro = fechaRegistro;
    }

    public boolean getDeshabilita() {
        return deshabilita;
    }

    public void setDeshabilita(boolean deshabilita) {
        this.deshabilita = deshabilita;
    }

    public boolean getGenerarPago() {
        return generarPago;
    }

    public void setGenerarPago(boolean generarPago) {
        this.generarPago = generarPago;
    }

    public boolean getExito() {
        return exito;
    }

    public void setExito(boolean exito) {
        this.exito = exito;
    }

    public Date getFechaPagoColegiatura() {
        return FechaPagoColegiatura;
    }

    public void setFechaPagoColegiatura(Date FechaPagoColegiatura) {
        this.FechaPagoColegiatura = FechaPagoColegiatura;
    }

    public int getCoutas() {
        return coutas = 1;
    }

    public void setCoutas(int coutas) {
        this.coutas = coutas;
    }

    public PagoColegiaturaDelagate getDelegadoPagoColegiatura() {
        return delegadoPagoColegiatura;
    }

    public void setDelegadoPagoColegiatura(PagoColegiaturaDelagate delegadoPagoColegiatura) {
        this.delegadoPagoColegiatura = delegadoPagoColegiatura;
    }

    public Capitulo getCapitulo() {
        return capitulo;
    }

    public void setCapitulo(Capitulo capitulo) {
        this.capitulo = capitulo;
    }

    public List<PersonaNatural> getListaPreInscritos() {
        return listaPreInscritos;
    }

    public void setListaPreInscritos(List<PersonaNatural> listaPreInscritos) {
        this.listaPreInscritos = listaPreInscritos;
    }

    public solicitanteDelegate getDelegadoSolicitante() {
        return delegadoSolicitante;
    }

    public void setDelegadoSolicitante(solicitanteDelegate delegadoSolicitante) {
        this.delegadoSolicitante = delegadoSolicitante;
    }

    public String getRuc() {
        return ruc;
    }

    public void setRuc(String ruc) {
        this.ruc = ruc;
    }

    public boolean isSoloColegiados() {
        return soloColegiados;
    }

    public void setSoloColegiados(boolean soloColegiados) {
        this.soloColegiados = soloColegiados;
    }

    public String getApeMat() {
        return apeMat;
    }

    public void setApeMat(String apeMat) {
        this.apeMat = apeMat;
    }

    public String getApePat() {
        return apePat;
    }

    public void setApePat(String apePat) {
        this.apePat = apePat;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public TituloDelegate getDelegadoTitulo() {
        return delegadoTitulo;
    }

    public void setDelegadoTitulo(TituloDelegate delegadoTitulo) {
        this.delegadoTitulo = delegadoTitulo;
    }

    public Titulo getTitulo() {
        return titulo;
    }

    public void setTitulo(Titulo titulo) {
        this.titulo = titulo;
    }

    public String getTabber() {
        return tabber;
    }

    public void setTabber(String tabber) {
        this.tabber = tabber;
    }

    public boolean getNuevoTitulo() {
        return nuevoTitulo;
    }

    public void setNuevoTitulo(boolean nuevoTitulo) {
        this.nuevoTitulo = nuevoTitulo;
    }

    public Especialidad getEspecial() {
        return especial;
    }

    public void setEspecial(Especialidad especial) {
        this.especial = especial;
    }

    public Capitulo getCodigoCap() {
        return codigoCap;
    }

    public void setCodigoCap(Capitulo codigoCap) {
        this.codigoCap = codigoCap;
    }

    public ColegiadoEspecialidad getColEsp() {
        return colEsp;
    }

    public void setColEsp(ColegiadoEspecialidad colEsp) {
        this.colEsp = colEsp;
    }

    public ColegiadoEspecialidadDelegate getDelegadoColEsp() {
        return delegadoColEsp;
    }

    public void setDelegadoColEsp(ColegiadoEspecialidadDelegate delegadoColEsp) {
        this.delegadoColEsp = delegadoColEsp;
    }

    public EspCapDelegate getDelegadoEspCap() {
        return delegadoEspCap;
    }

    public void setDelegadoEspCap(EspCapDelegate delegadoEspCap) {
        this.delegadoEspCap = delegadoEspCap;
    }

    public ColegiadoImagen getColImagen() {
        return colImagen;
    }

    public void setColImagen(ColegiadoImagen colImagen) {
        this.colImagen = colImagen;
    }

    public ColegiadoImagenDelegate getDelegadoImagen() {
        return delegadoImagen;
    }

    public void setDelegadoImagen(ColegiadoImagenDelegate delegadoImagen) {
        this.delegadoImagen = delegadoImagen;
    }
    
    public PreInscripcionDelegate getDelegado() {
        return delegado;
    }

    public void setDelegado(PreInscripcionDelegate delegado) {
        this.delegado = delegado;
    }

    public PersonaNaturalDelegate getDelegadoNatural() {
        return delegadoNatural;
    }

    public void setDelegadoNatural(PersonaNaturalDelegate delegadoNatural) {
        this.delegadoNatural = delegadoNatural;
    }

    public PersonaJuridicaDelegate getDelegadoJuridico() {
        return delegadoJuridico;
    }

    public void setDelegadoJuridico(PersonaJuridicaDelegate delegadoJuridico) {
        this.delegadoJuridico = delegadoJuridico;
    }

    public FormacionProfesionalDelegate getDelegadoFormacion() {
        return delegadoFormacion;
    }

    public void setDelegadoFormacion(FormacionProfesionalDelegate delegadoFormacion) {
        this.delegadoFormacion = delegadoFormacion;
    }

    public DerechosAutorDelegate getDelegadoDerechoAutor() {
        return delegadoDerechoAutor;
    }

    public void setDelegadoDerechoAutor(DerechosAutorDelegate delegadoDerechoAutor) {
        this.delegadoDerechoAutor = delegadoDerechoAutor;
    }

    public Preinscripcion getPreinscrip() {
        return preinscrip;
    }

    public void setPreinscrip(Preinscripcion preinscrip) {
        this.preinscrip = preinscrip;
    }

    public FormacionProfesional getFormProf() {
        return formProf;
    }

    public void setFormProf(FormacionProfesional formProf) {
        this.formProf = formProf;
    }

    public PersonaJuridica getPerJuridica() {
        return perJuridica;
    }

    public void setPerJuridica(PersonaJuridica perJuridica) {
        this.perJuridica = perJuridica;
    }

    public PersonaNatural getPerNatural() {
        return perNatural;
    }

    public TelefonoSolicitante getCelularPer() {
        return celularPer;
    }

    public void setCelularPer(TelefonoSolicitante celularPer) {
        this.celularPer = celularPer;
    }

    public TelefonoSolicitante getTelefonoPer() {
        return telefonoPer;
    }

    public void setTelefonoPer(TelefonoSolicitante telefonoPer) {
        this.telefonoPer = telefonoPer;
    }

    public DireccionPersona getDireccionPersona() {
        return direccionPersona;
    }

    public void setDireccionPersona(DireccionPersona direccionPersona) {
        this.direccionPersona = direccionPersona;
    }

    public DireccionPersona getDireccionEmpresa() {
        return direccionEmpresa;
    }

    public void setDireccionEmpresa(DireccionPersona direccionEmpresa) {
        this.direccionEmpresa = direccionEmpresa;
    }

    public TelefonoSolicitante getTelefonoEmp() {
        return telefonoEmp;
    }

    public void setTelefonoEmp(TelefonoSolicitante telefonoEmp) {
        this.telefonoEmp = telefonoEmp;
    }

    public DerechosAutor getDerechoAutor() {
        return derechoAutor;
    }

    public void setDerechoAutor(DerechosAutor derechoAutor) {
        this.derechoAutor = derechoAutor;
    }

    public Cita getCita() {
        return cita;
    }

    public void setCita(Cita cita) {
        this.cita = cita;
    }

    public Colegiado getColegiado() {
        return colegiado;
    }

    public void setColegiado(Colegiado colegiado) {
        this.colegiado = colegiado;
    }

    public Nacionalidad getNacion() {
        return nacion;
    }

    public void setNacion(Nacionalidad nacion) {
        this.nacion = nacion;
    }

    public PersonaNatural getPersona() {
        return persona;
    }

    public void setPersona(PersonaNatural persona) {
        this.persona = persona;
    }

    public ColegiadoDelegate getDelegadoColegiado() {
        return delegadoColegiado;
    }

    public void setDelegadoColegiado(ColegiadoDelegate delegadoColegiado) {
        this.delegadoColegiado = delegadoColegiado;
    }
    
    public TipoColegiado getTipocolegiado() {
        return tipocolegiado;
    }

    public void setTipocolegiado(TipoColegiado tipocolegiado) {
        this.tipocolegiado = tipocolegiado;
    }

    public EspecialidadCapitulo getEspCap() {
        return espCap;
    }

    public void setEspCap(EspecialidadCapitulo espCap) {
        this.espCap = espCap;
    }

    public CitaDelegate getDelegadoCita() {
        return delegadoCita;
    }

    public void setDelegadoCita(CitaDelegate delegadoCita) {
        this.delegadoCita = delegadoCita;
    }

    public Preinscripcion buscarPorCodigo(Integer codigo){

        return delegado.find(codigo);
    }

    public List<Preinscripcion> getListaInscripciones(){

        return delegado.findAll();
    }

    public PersonaNatural buscaPersona(Long codigo){

        persona =  delegadoNatural.buscaXCodigo(codigo);
        return null;
    }

    public DireccionDelegate getDelegadoDireccion() {
        return delegadoDireccion;
    }

    public void setDelegadoDireccion(DireccionDelegate delegadoDireccion) {
        this.delegadoDireccion = delegadoDireccion;
    }

    public DireccionPersona getDireccionEmp() {
        return direccionEmp;
    }

    public void setDireccionEmp(DireccionPersona direccionEmp) {
        this.direccionEmp = direccionEmp;
    }

    public TelefonoDelegate getDelegadoTelefono() {
        return delegadoTelefono;
    }

    public void setDelegadoTelefono(TelefonoDelegate delegadoTelefono) {
        this.delegadoTelefono = delegadoTelefono;
    }

    public EspecialidadDelegate getDelegadoEspecialidad() {
        return delegadoEspecialidad;
    }

    public void setDelegadoEspecialidad(EspecialidadDelegate delegadoEspecialidad) {
        this.delegadoEspecialidad = delegadoEspecialidad;
    }

    public Especialidad getEspecialidad() {
        return especialidad;
    }

    public void setEspecialidad(Especialidad especialidad) {
        this.especialidad = especialidad;
    }

    public EscuelaDelegate getDelegadoEscuela() {
        return delegadoEscuela;
    }

    public void setDelegadoEscuela(EscuelaDelegate delegadoEscuela) {
        this.delegadoEscuela = delegadoEscuela;
    }

    public Escuela getEscuela() {
        return escuela;
    }

    public void setEscuela(Escuela escuela) {
        this.escuela = escuela;
    }

    public FacultadDelegate getDelegadoFacultad() {
        return delegadoFacultad;
    }

    public void setDelegadoFacultad(FacultadDelegate delegadoFacultad) {
        this.delegadoFacultad = delegadoFacultad;
    }

    public Facultad getFacultad() {
        return facultad;
    }

    public void setFacultad(Facultad facultad) {
        this.facultad = facultad;
    }

    public UniversidadDelegate getDelegadoUniversidad() {
        return delegadoUniversidad;
    }

    public void setDelegadoUniversidad(UniversidadDelegate delegadoUniversidad) {
        this.delegadoUniversidad = delegadoUniversidad;
    }

    public Universidad getUniversidad() {
        return universidad;
    }

    public void setUniversidad(Universidad universidad) {
        this.universidad = universidad;
    }

    public String getDni() {
        return dni;
    }

    public void setDni(String dni) {
        this.dni = dni;
    }

    public DireccionPersona getDireccion() {
        return direccion;
    }

    public void setDireccion(DireccionPersona direccion) {
        this.direccion = direccion;
    }

    public TelefonoSolicitante getTelefono() {
        return telefono;
    }

    public void setTelefono(TelefonoSolicitante telefono) {
        this.telefono = telefono;
    }

    public Pais getPais() {
        return pais;
    }

    public void setPais(Pais pais) {
        this.pais = pais;
    }

    public String getDestino() {
        return destino;
    }

    public void setDestino(String destino) {
        this.destino = destino;
    }
    
    public String nuevo(){       
       
        return "ir_a_nuevo";
    }

    //TABBER = Personal / Domicilio / Profesional / laboral / Colegiado
    public String grabaDatosPersonales(){  //general

      if(PersonaEncontrado == true){
         try{
            nacion = delegadoNacionalidad.buscarPeruano();
            perNatural.setNacionalidad(nacion);
            perNatural.setPerTipo(2);
            delegadoNatural.edit(perNatural);

            colegiado.setSolCodigo(perNatural.getSolCodigo());
            colegiado.setPersonaNatural(perNatural);
            pais.setPaiCodigo(1);
            colegiado.setPais(pais);
            colegiado.setColestaVivo(true);
            tipocolegiado.setTcoCodigo(1);
            colegiado.setTipoColegiado(tipocolegiado);
            delegadoColegiado.create(colegiado);

            btnpersonal = true;  // para activar boton de edicion...
            tabber = "Domicilio";
            }catch(Exception ex){
                return null;
            }

        }else{
            try{
                if(!chekeaDNI()){
                    nacion = delegadoNacionalidad.buscarPeruano();
                    perNatural.setNacionalidad(nacion);
                    perNatural.setPerActivo(true);
                    perNatural.setPerfechaRegistro(new Date());
                    perNatural.setPertieneImagen(false);
                    perNatural.setPerTipo(2);
                    
                   delegadoNatural.create(perNatural);
                    //0=NO COLEGIADO; 1=COLEGIADO; 2=PREINSCRITO; 3=NUEVO
                    colegiado.setSolCodigo(perNatural.getSolCodigo());
                    colegiado.setPersonaNatural(perNatural);
                    pais = delegadoPais.buscaPeru();
                    colegiado.setPais(pais);
                    colegiado.setColestaVivo(true);
                    tipocolegiado.setTcoCodigo(1);
                    colegiado.setTipoColegiado(tipocolegiado);
                    delegadoColegiado.create(colegiado);

                    tabber = "Domicilio";
                    btnpersonal = true;  // para activar boton de edicion...
                    error = "";
                    chekDNI = false;
                }else{
                   perNatural.setPerNroDNI(null);
                   return null;
                }               
            }catch(Exception ex){
                return null;
            }
        }        
        return null;     
    }

    public boolean chekeaDNI(){

        PersonaNatural DNIpersona;
       
        if(perNatural.getPerNroDNI() != null){
            DNIpersona = new PersonaNatural();
            DNIpersona = delegadoNatural.buscarXDni(perNatural.getPerNroDNI());
            if(DNIpersona != null){
                if(DNIpersona.getPerNroDNI().equals(perNatural.getPerNroDNI())){
                    error = "DNI repetido";
                    chekDNI = true;
                    mostrarMensaje("Error", "DNI repetido, ya fue resgistrada esta Persona", FacesMessage.SEVERITY_ERROR);
                    return true;
                }else{
                    chekDNI = false;
                    return false;
                }
            }else{
                chekDNI = false;
                return false;
            }
        }else{
            error = "(*)campo obligatorio";
            mostrarMensaje("Error", "Campo Obligatorio", FacesMessage.SEVERITY_ERROR);
            chekDNI = true;
            return true;
        }
    }

    public String grabaDomicilio(){  //general

       try{
        //asiganamos la direccion a la persona
        if(DireccionEncontrada == true){
            direccionPersona.setSolCodigo(perNatural);
            delegadoDireccion.edit(direccionPersona);
        }
        if(DireccionEncontrada == false){
            direccionPersona.setSolCodigo(perNatural);
            direccionPersona.setDpeActivo(true);
            delegadoDireccion.create(direccionPersona);

        }

        if(telefonoEncontrado == true){

            telefonoPer.setTsoEstado(true);
            telefonoPer.setTsotipoTelefono("Fijo");
            delegadoTelefono.edit(telefonoPer);
        }

        if(telefonoPer.getTsoNumero() != null && !telefonoPer.getTsoNumero().isEmpty()){
            telefonoPer.setSolCodigo(perNatural);
            telefonoPer.setTsoEstado(true);
            telefonoPer.setTsotipoTelefono("Fijo");
            delegadoTelefono.create(telefonoPer);

        }

        if(celularEncontrado == true){

            celularPer.setTsoEstado(true);
            celularPer.setTsotipoTelefono("celular");
            delegadoTelefono.edit(celularPer);
        }
        if(celularPer.getTsoNumero() != null && !celularPer.getTsoNumero().isEmpty()){
            celularPer.setSolCodigo(perNatural);
            celularPer.setTsoEstado(true);
            celularPer.setTsotipoTelefono("celular");
            delegadoTelefono.create(celularPer);
        }


        tabber = "Profesional";
        btndomicilio = true;
        formProf = new FormacionProfesional();
        return null;
       }catch(Exception ex){
           return null;
       }
    }
    
    private Integer titCodigo;

    public Integer getTitCodigo() {
        return titCodigo;
    }

    public void setTitCodigo(Integer titCodigo) {
        this.titCodigo = titCodigo;
    }

    public String grabaProfesional(){ 

        //creamos la FormacionProfesional        
        try{
        formProf.setColegiado(colegiado);     
        titulo = delegadoTitulo.find(titCodigo);
        formProf.setTitulo(titulo);
        formProf.setEspCodigo(titulo.getEspCodigo());

        delegadoFormacion.create(formProf);      

        AsignaCapitulo();

        tabber = "laboral";
        btnformacion = true;
        return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String AsignaCapitulo(){

        try{
        espCap = delegadoEspCap.devuelveCapitulo(formProf.getEspCodigo().getEspCodigo());
        //guardamos el capitulo en el que se encuentra un colegiado
        colEsp.setColCodigo(colegiado);
        colEsp.setEcaCodigo(espCap);
        colEsp.setCesPrioridad(true);
        colEsp.setCesActivo(true);
        delegadoColEsp.create(colEsp);

        return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String grabaProfesional2(){

        try{
        formProf.setColegiado(colegiado);
        delegadoFormacion.create(formProf);

        tabber = "laboral";
        btnformacion = true;
        return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String grabaLaboral(){

        try{
            delegadoSolicitante.edit(perNatural);
            delegadoColegiado.edit(colegiado);
            tabber = "Deporte";
            btnlaboral = true;
        return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String grabaLaboral2(){

        try{
            //creamos la persona Juridica
            if(estados == false){
                delegadoSolicitante.edit(perNatural);
                delegadoColegiado.edit(colegiado);
                tabber = "Deporte";
                btnlaboral = true;
            }else{
                if(perJuridica.getEmprazonSocial() != null && !perJuridica.getEmprazonSocial().isEmpty()){

                    delegadoJuridico.create(perJuridica);
                    //asignamos la direccion a la personaJuridica
                    direccionEmpresa.setSolCodigo(perJuridica);
                    direccionEmpresa.setDpeActivo(true);
                    perJuridica.getListaDirecciones().add(direccionEmpresa);

                    //asignamos el telefono a la personaJuridica
                    telefonoEmp.setSolCodigo(perJuridica);
                    telefonoEmp.setTsoEstado(true);
                    telefonoEmp.setTsotipoTelefono("Fijo");
                    perJuridica.getTelefonoSolicitanteCollection().add(telefonoEmp);

                    //editamos personaJuridica para actualizar los datos ingresados
                    delegadoJuridico.edit(perJuridica);
                    delegadoSolicitante.edit(perNatural);
                    delegadoColegiado.edit(colegiado);
                    tabber = "Deporte";
                    btnlaboral = true;
                }
            }
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    //REGISTRAR DEPORTES

    public String grabaDeporte(){

        try{
         colegiadoDeporte.setColCodigo(colegiado);
         colegiadoDeporte.setCdeSancion(false);
         delegadoColDeporte.create(colegiadoDeporte);
         colegiadoDeporte = new ColegiadoDeporte();
         getListaColegiadoDeportes();
        }catch(Exception ex){
            return null;
        }
         
        return null;
     
    }

    public List<ColegiadoDeporte> getListaColegiadoDeportes(){

        try{
        listaColegiadoDeporte = null;
        listaColegiadoDeporte = delegadoColDeporte.listaColDeporte(perNatural.getSolCodigo());        
        return listaColegiadoDeporte;
        }catch(Exception ex){
            return null;
        }
    }

    public String eliminarDeporte(){

        delegadoColDeporte.remove(colegiadoDeporte);
        colegiadoDeporte = new ColegiadoDeporte();
        return null;
    }
    
    public String continuar(){
        
         tabber = "Colegiado";
         return null;
    }

    public String grabaColegiado(){

        try{
            delegadoSolicitante.edit(perNatural);
            preinscrip.setPerCodigo(perNatural);
            preinscrip.setFopCodigo(formProf);
            preinscrip.setEcaCodigo(espCap);
            preinscrip.setPrefechaInscripcion(new Date());
            preinscrip.setPreEstado(true);
            preinscrip.setPrePagoColegiatura(false);
            delegado.create(preinscrip);

            validarCodigo();
            
            return destino;
        }catch(Exception ex){
            return null;
        }       
    }

    public String grabaColegiado2(){
    
     try{
           delegadoSolicitante.edit(perNatural);

            preinscrip.setPerCodigo(perNatural);

            preinscrip.setFopCodigo(formProf);
            preinscrip.setEcaCodigo(espCap);
            preinscrip.setPrefechaInscripcion(new Date());
            preinscrip.setPreEstado(true);
            preinscrip.setPrePagoColegiatura(false);
            delegado.create(preinscrip);
  

            if(nuevoTitulo==true){

              colEsp.setEcaCodigo(preinscrip.getEcaCodigo());
              colEsp.setColCodigo(colegiado);
              colEsp.setCesActivo(true);
              colEsp.setCesPrioridad(true);
              delegadoColEsp.edit(colEsp);
            }
    //        tabber = "Personal";
            validarCodigo();
         

            return destino;
     }catch(Exception ex){
         return null;
     }
       
    }

    public String validarCodigo(){

    CodeGeneratorController control = (CodeGeneratorController) ControladorAbstracto.getBean("CodeGeneratorController");
    String codigoGenerado = control.getCodigoGenerado();

       delegadoColegiado.edit(colegiado);
       delegadoNatural.edit(perNatural);
       if(genCodigo.compareToIgnoreCase(codigoGenerado)==0){
//           tabber = "Personal";
           genCodigo = "";
           destino = "subir_doc";
        }else{
           activo = true;
           genCodigo = "";
           tabber = "Colegiado";
           destino = null;
        }
      return destino;
    }

    public String validaCodigo(){

        validarCodigo();
        return destino;
    }

    // preInscripcion Lourdes

    public String grabaColegiadoPre(){

        try{
            delegadoSolicitante.edit(perNatural);

            preinscrip.setPerCodigo(perNatural);
            preinscrip.setFopCodigo(formProf);
            preinscrip.setEcaCodigo(espCap);
            preinscrip.setPrefechaInscripcion(new Date());
            preinscrip.setPreEstado(true);
            preinscrip.setPrePagoColegiatura(false);
            delegado.create(preinscrip);
  
//            validarCodigoPre();
//            destino = "subir_documentos";

            return "subir_documentos"; 
        }catch(Exception ex){
            return null;
        }
    }

    public String grabaColegiadoPre2(){

     try{
           delegadoSolicitante.edit(perNatural);

            preinscrip.setPerCodigo(perNatural);

            preinscrip.setFopCodigo(formProf);
            preinscrip.setEcaCodigo(espCap);
            preinscrip.setPrefechaInscripcion(new Date());
            preinscrip.setPreEstado(true);
            preinscrip.setPrePagoColegiatura(false);
            delegado.create(preinscrip);
    

            if(nuevoTitulo==true){

              colEsp.setEcaCodigo(preinscrip.getEcaCodigo());
              colEsp.setColCodigo(colegiado);
              colEsp.setCesActivo(true);
              colEsp.setCesPrioridad(true);
              delegadoColEsp.edit(colEsp);
            }
    //        tabber = "Personal";
//            validarCodigoPre();
//            destino = "subir_documentos";

            return "subir_documentos"; 
     }catch(Exception ex){
         return null;
     }

    }

    public String validarCodigoPre(){

    CodeGeneratorController control = (CodeGeneratorController) ControladorAbstracto.getBean("CodeGeneratorController");
    String codigoGenerado = control.getCodigoGenerado();

       delegadoColegiado.edit(colegiado);
       delegadoNatural.edit(perNatural);
       if(genCodigo.compareToIgnoreCase(codigoGenerado)==0){
//           tabber = "Personal";
           genCodigo = "";
           destino = "subir_documentos";
        }else{
           activo = true;
           genCodigo = "";
           tabber = "Colegiado";
           destino = null;
        }
      return destino;
    }

    public String validaCodigoPre(){

        validarCodigoPre();
        return destino;
    }
    // fin
    public String cesion(){
        buscaUniversidad();
        buscaEspecialidad();
        return "ir_a_cesion";
    }

    public String fichaCesion(){

        buscaUniversidad();
        buscaEspecialidad();
        return "ir_a_fichaCesion";
    }

    
    public String buscaDireccion(){

        try {
            direccionEmp = delegadoDireccion.buscaDireccionColegiado(preinscrip.getEmpCodigo().getSolCodigo());
            return null;
        } catch (Exception e) {
             return null;
        }
    }

    public String editar(){

        delegado.edit(preinscrip);
        return "ir_a_listar";
    }

    public String getObtenerNombre(){
        return colegiado.getPersonaNatural().getNombreCompleto();
    }

    public String buscaEspecialidad(){
        try{           
            especialidad = delegadoEspecialidad.buscaEspecialidad(formProf.getTitulo().getEspCodigo().getEspCodigo());
            buscaEscuela();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String buscaEscuela(){
        try{           
            escuela = delegadoEscuela.buscaEscuela(especialidad.getEscuela().getEscCodigo());
            buscaFacultad();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String buscaFacultad(){

        try{       
            facultad = delegadoFacultad.buscaFacultad(escuela.getFacultad().getFacCodigo());
            buscaUniversidad();
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String buscaUniversidad(){
        try{
            universidad = delegadoUniversidad.buscaUniversidad(formProf.getUniCodigo().getUniCodigo());
            return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String grabaFicha(){

       try{
        //asignamos el colegiado a derechos de autor
        derechoAutor.setEspCodigo(formProf.getEspCodigo());
        derechoAutor.setColCodigo(colegiado);
        derechoAutor.setCdafechaRegistro(new Date());
        delegadoDerechoAutor.create(derechoAutor);

        codigoColegiado = colegiado.getPersonaNatural().getSolCodigo();
        tipoColegiado = colegiado.getTipoColegiado().getTcoCodigo();
        DNIColegiado = colegiado.getPersonaNatural().getPerNroDNI();
        nombreColegiado = colegiado.getPersonaNatural().getNombreColegiado();
        emailPreInscrito = colegiado.getPersonaNatural().getSolcorreopersonal1();        
        preInscripcionWeb = preinscrip;
        inicializa();
        
        genCodigo = "";
        return "ir_a_cita";
       }catch(Exception ex){
           return null;
       }
    }

    public String grabaFichaCesion2(){

       try{
        //asignamos el colegiado a derechos de autor
        derechoAutor.setEspCodigo(formProf.getEspCodigo());
        derechoAutor.setColCodigo(colegiado);
        derechoAutor.setCdafechaRegistro(new Date());
        delegadoDerechoAutor.create(derechoAutor);

        genCodigo = "";

        codigoColegiado = colegiado.getPersonaNatural().getSolCodigo();
        tipoColegiado = colegiado.getTipoColegiado().getTcoCodigo();
        DNIColegiado = colegiado.getPersonaNatural().getPerNroDNI();
        nombreColegiado = colegiado.getPersonaNatural().getNombreColegiado();
        emailPreInscrito = colegiado.getPersonaNatural().getSolcorreopersonal1();
        pagoColegiatura = preinscrip.getPrePagoColegiatura();
        preInscripcionWeb = preinscrip;
        inicializa();

        return "ir_a_documentos";
       }catch(Exception ex){
           return null;
       }
    }

    public String grabaCita(){

      try{
        HttpServletRequest request = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/LogoCorreo.gif";
        String rutaImagen = request.getRealPath(Imagen);
        String origen,asunto,cuerpo,contenido,email;

        estado.setEciCodigo(2);
        cita.setEstado(estado);
        cita.setPreCodigo(preInscripcionWeb);
        delegadoCita.edit(cita);

        // Enviar Correo a los ingenieros Pre - inscritos

        origen = "colegiatura@cip-cdll.org.pe";
        asunto = "Confirmación de Pre -Inscripción";
        cuerpo = "Estimado Ing."+nombreColegiado+"\n\n";
        cuerpo = cuerpo+"Mediante este correo le hacemos de conocimiento que su Pre - Inscripción se realizo correctamente ";
        cuerpo = cuerpo+"registrando su Cita para la fecha: "+cita.getFechaCita()+" y Hora: "+cita.getCithoraInicio()+".\n\n\n";
        contenido = cuerpo+"sin otro particular me despido de usted.";
        email = emailPreInscrito;
        EnviaEmail.envia(origen, email, asunto, contenido, rutaImagen);
            
        inicializa();
        preInscripcionWeb = new Preinscripcion();
        cita = new Cita();
        tabber = null;
        return "mensaje";
      }catch(Exception ex){
          return null;
      }
    }
   
    public List<Cita> getlistaDisponibles(){

        return delegadoCita.listaDisponibles();
    }

    public EstadoCita getEstado() {
        return estado;
    }

    public void setEstado(EstadoCita estado) {
        this.estado = estado;
    }

    public boolean getEstados() {
        return estados;
    }

    public void setEstados(boolean estados) {
        this.estados = estados;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String cambiaEstado(){

       if(estados==false){
        estados=true;
        id="laboral";
        perJuridica = new PersonaJuridica();
        return null;
       }else{
           estados=false;
           id= "laboral";
           perJuridica = new PersonaJuridica();
           return "estados";
       }
    }

    //ACTUALIZA LA FICHA DE PREINSCRIPCION

    public String muestraFicha(){

        try{
            buscarPorDNI();
            buscaPreInscripcion();
            buscaEmpPreInscrito();
            buscaDirEmpresa();
            buscaFormacionPreinscrit();
            buscaDirPreInscrito();
            buscaEspecialidad();
            buscaCapitulo();
            ListaTelefonosPreInscrit();
            listaPreTelefonosEmp();

            listaPreInscritos = null; //ultimo cambio
            dni = "";
            apeMat = "";
            apePat = "";
            nombre = "";
            return "buscaPreInscrito";
        }catch(Exception ex){
            return null;
        }
    }

    public String muestraFichaTemporal(){

        try{
            buscarPorPasaporte();
            buscaPreInscripcion();
            buscaEmpPreInscrito();            
            buscaFormacionPreinscrit();            
            buscaDirPreInscrito();           
            buscaCapituloTemporal();
            ListaTelefonosPreInscrit();
            listaPreTelefonosEmp();

            listaPreInscritos= null; //ultimo cambio
            dni = "";
            apeMat = "";
            apePat = "";
            nombre = "";
            return "buscaPreInscritoTemporal";
        }catch(Exception ex){
            return null;
        }
    }

    public String buscaCapituloTemporal(){

        try{
            colEsp = new ColegiadoEspecialidad();
            colEsp = delegadoColEsp.colegiadoEsp(colegiado.getSolCodigo());

        }catch(Exception ex){
            return null;
        }
        return null;
    }
    //ACTUALIZAR LA FICHA DEL COLEGIADO TEMPORAL

    public String actualizarFichaTemporal(){

        try{
        delegadoColegiado.edit(colegiado);

        formProf.setColegiado(colegiado);
        delegadoFormacion.edit(formProf);
        //ACTUALIZAMOS LA DIRECCION DEL PRE - INSCRITO
        direccion.setSolCodigo(colegiado.getPersonaNatural());
        delegadoDireccion.edit(direccion);

        //ACTUALIZA LA EMPRESA
        delegadoJuridico.edit(perJuridica);

        //ACTUALIZAMOS LA DIRECCION DE LA EMPRESA
        direccionEmp.setSolCodigo(perJuridica);
        delegadoDireccion.edit(direccionEmp);

//        ReasignaCapitulo();
//        listaEspCap = delegadoEspCap.buscaPorCapitulo(capitulo);
        
        colEsp.setColCodigo(colegiado);
//        colEsp.setEcaCodigo(espCap);
        delegadoColEsp.edit(colEsp);
        espCap = delegadoEspCap.espCapitulo(colEsp.getEcaCodigo().getEcaCodigo());

        //ACTUALIZAMOS LA PRE - INSCRIPCION
        preinscrip.setEcaCodigo(espCap);
        preinscrip.setEmpCodigo(perJuridica);
        preinscrip.setFopCodigo(formProf);
        preinscrip.setPerCodigo(colegiado.getPersonaNatural());
        delegado.edit(preinscrip);

        codigoColegiado = colegiado.getPersonaNatural().getSolCodigo();
        tipoColegiado = colegiado.getTipoColegiado().getTcoCodigo();
        DNIColegiado = colegiado.getPersonaNatural().getPerNroDNI();
        nombreColegiado = colegiado.getPersonaNatural().getNombreColegiado();
        inicializa();

        return "generarDoc";
        }catch(Exception ex){
            return null;
        }
    }

    //BUSCAR POR NRO PASAPORTE

    public String buscarPorDNI(){

        try{
            colegiado = new Colegiado();
            perNatural = new PersonaNatural();
            direccionPersona = new DireccionPersona();
            telefonoPer = new TelefonoSolicitante();
            celularPer = new TelefonoSolicitante();

            perJuridica = new PersonaJuridica();
            direccionEmpresa = new DireccionPersona();
            telefonoEmp = new TelefonoSolicitante();
            espCap = new EspecialidadCapitulo();
            estado = new EstadoCita();

            direccionEmp = new DireccionPersona();
            direccion = new DireccionPersona();
            telefono = new TelefonoSolicitante();
           
            colImagen = new ColegiadoImagen();

            colegiado = delegadoColegiado.buscaPorDni(persona.getPerNroDNI());
            persona = new PersonaNatural();
        }catch(Exception ex){
            System.out.println(ex);
        }
        return null;
    }

    //BUSCAR PERSONA EN EL SISTEMA POR NOMBRES, APELLIDO PATERNO, APELLIDO MATERNO

    public String buscarPersonaEnSistema(){
      
        try{
            ruc = "";
            soloColegiados = false;
            listaSolicitantes = new ArrayList<PersonaNatural>();
        
            listaSolicitantes = delegadoSolicitante.buscarPerNatural(dni, apePat, apeMat, nombre, ruc, soloColegiados);//buscarPersona(dni, apePat, apeMat, nombre, ruc, soloColegiados);
           
        }catch(Exception ex){            
            return null;
        }
        return null;
    }

    public String buscarTelefonoPersonaEnSistema(){

        try{
            telefonoPer = new TelefonoSolicitante();
            telefonoPer = delegadoTelefono.buscaTelefonoFijo(perNatural.getSolCodigo());
        }catch(Exception ex){
            return null;
        }
        return null;
    }

    public String buscarCelularPesonaEnSistema(){

        try{
            celularPer = new TelefonoSolicitante();
            celularPer = delegadoTelefono.buscaCelular(perNatural.getSolCodigo());
        }catch(Exception ex){
            return null;
        }
        return null;
    }

    public String Limpiar(){
        cargarDatos = null;
        dni = "";
        return null;
    }

    public String buscaPorDNIPersona(){
       try{
            perNatural = new PersonaNatural();
            perNatural = delegadoNatural.buscarXDni(dni);
            if(perNatural != null){
                cargarDatos = true;
                cargarDatosEnFicha();
                nombrePersona = perNatural.getNombreCompleto();
                dniPersona = perNatural.getPerNroDNI();
                emailPersona = perNatural.getSolcorreopersonal1();
                tipoPersona = perNatural.getPerTipo();                
                dni = "";
            }else{
                cargarDatos = false;
                dni = "";
                perNatural = new PersonaNatural();
            }
            return null;

       }catch(Exception ex){
           return null;
       }
    }

    public String continuarPreInscripcion(){

        if(cargarDatos == true){
           
           nombrePersona = null;
           dniPersona = null;
           emailPersona = null;
           destino = "fichaPreInscripcion1";
           cargarDatos = null;
           tabber = "Personal";
        }else{
           inicializa();
           destino = "fichaPreInscripcion1";//"nuevaFichaPreInscripcion";
        }
        return destino;
    }

    public String buscaPorDNIPersonaWeb(){
       try{
            perNatural = new PersonaNatural();
            perNatural = delegadoNatural.buscarXDni_Tipo(dni);
            if(perNatural != null){
                cargarDatos = true;
                cargarDatosEnFicha();
                nombrePersona = perNatural.getNombreCompleto();
                dniPersona = perNatural.getPerNroDNI();
                emailPersona = perNatural.getSolcorreopersonal1();
                tipoPersona = perNatural.getPerTipo();
                dni = "";
            }else{
                cargarDatos = false;
                dni = "";
                perNatural = new PersonaNatural();
            }
            return null;

       }catch(Exception ex){
           return null;
       }
    }

    public String continuarPreInscripcionWeb(){

        if(cargarDatos == true){
           
           nombrePersona = null;
           dniPersona = null;
           emailPersona = null;
           destino = "fichaPreInscripcionWeb";
           cargarDatos = null;
           tabber = "Personal";
        }else{
//           inicializa();
           destino = "fichaPreInscripcionWeb";//"nuevaFichaPreInscripcion";           
        }
        return destino;
    }

    public String cargarDatosEnFicha(){

        try{
//            buscarDNIPersonaEnSistema();
            if(perNatural != null){
                PersonaEncontrado = true;
            }else{
                perNatural = new PersonaNatural();
                PersonaEncontrado = false;
            }

            buscaDireccionPersonaEnSistema();
            if(direccionPersona != null){
                DireccionEncontrada = true;
            }else{
                DireccionEncontrada = false;
                direccionPersona = new DireccionPersona();                
            }

            buscarTelefonoPersonaEnSistema();
            if(telefonoPer != null){
                telefonoEncontrado = true;
            }else{
                telefonoPer = new TelefonoSolicitante();
                telefonoEncontrado = false;
            }

            buscarCelularPesonaEnSistema();
            if(celularPer != null){
                celularEncontrado = true;
            }else{
                celularPer = new TelefonoSolicitante();
                celularEncontrado = false;
            }
            //listaSolicitantes.clear();  //ultimo cambio
            return null;//"fichaPreInscripcion";

        }catch(Exception ex){
            System.out.println("error "+ex);
//            PersonaEncontrado = false;
//            DireccionEncontrada = false;
//            celularEncontrado = false;
//            telefonoEncontrado = false;
            return null;
        }
    }

    public String buscarDNIPersonaEnSistema(){

        colegiado = new Colegiado();
        perNatural = new PersonaNatural();
        direccionPersona = new DireccionPersona();
        telefonoPer = new TelefonoSolicitante();
        celularPer = new TelefonoSolicitante();

        perJuridica = new PersonaJuridica();
        direccionEmpresa = new DireccionPersona();
        telefonoEmp = new TelefonoSolicitante();
        espCap = new EspecialidadCapitulo();
        estado = new EstadoCita();

        direccionEmp = new DireccionPersona();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();

        delegadoImagen = new ColegiadoImagenDelegate();
        colImagen = new ColegiadoImagen();
        try{
//            colegiado = delegadoColegiado.buscaColegiado(persona.getSolCodigo());
            perNatural = delegadoNatural.buscaXCodigo(persona.getSolCodigo());

        }catch(Exception ex){
            System.out.println(ex);
        }
        return null;
    }
    //BUSCAR LA DIRECCION DE UNA PERSONA QUE ESTA EN EL SISTEMA

   public String buscaDireccionPersonaEnSistema(){
        try{
            direccionPersona = new DireccionPersona();
            direccionPersona = delegadoDireccion.buscaDireccionColegiado(perNatural.getSolCodigo());
        }catch(Exception ex){
            System.out.println(ex);
        }
        return null;
    }

    //BUSCAR POR NOMBRES, APELLIDO PATERNO, APELLIDO MATERNO

    public String buscarPreColegiado(){

        try{
            listaPreInscritos = new ArrayList<PersonaNatural>();
            listaPreInscritos = delegado.buscarPreinscritos(dni, nombre, apePat, apeMat);

        }catch(Exception ex){

            return null;
        }
        return null;
    }
//    public String buscarPreColegiado(){
//
//        try{
//            ruc = "";
//            soloColegiados = false;
//            listaPreInscritos = new ArrayList<PersonaNatural>();
//            listaPreInscritos = delegadoSolicitante.buscarPreInscrito(dni, apePat, apeMat, nombre, ruc, soloColegiados);
//
//        }catch(Exception ex){
//
//            return null;
//        }
//        return null;
//    }

    //BUSCAR UN PRE INSCRITO POR DNI

    public String buscarPorPasaporte(){

        colegiado = new Colegiado();
        perNatural = new PersonaNatural();
        direccionPersona = new DireccionPersona();
        telefonoPer = new TelefonoSolicitante();
        celularPer = new TelefonoSolicitante();

        perJuridica = new PersonaJuridica();
        direccionEmpresa = new DireccionPersona();
        telefonoEmp = new TelefonoSolicitante();
        espCap = new EspecialidadCapitulo();
        estado = new EstadoCita();

        direccionEmp = new DireccionPersona();
        direccion = new DireccionPersona();
        telefono = new TelefonoSolicitante();

        delegadoImagen = new ColegiadoImagenDelegate();
        colImagen = new ColegiadoImagen();
        try{
            colegiado = delegadoColegiado.buscaColegiadoPorPasaporte(persona.getPerNroPasaporte());

        }catch(Exception ex){
            System.out.println(ex);
        }
        return null;
    }

    //ACTUALIZAMOS LA FICHA DE PRE - INSCRITO

    public String actualizarFicha(){

        try{
//        delegadoNatural.edit(perNatural);
        delegadoColegiado.edit(colegiado);

        formProf.setColegiado(colegiado);
//        titulo = delegadoTitulo.find(titCodigo);
//        formProf.setTitulo(titulo);
//        formProf.setEspCodigo(titulo.getEspCodigo());
        delegadoFormacion.edit(formProf);
        //ACTUALIZAMOS LA DIRECCION DEL PRE - INSCRITO
        direccion.setSolCodigo(colegiado.getPersonaNatural());
        delegadoDireccion.edit(direccion);

        //ACTUALIZA LA EMPRESA
        delegadoJuridico.edit(perJuridica);
        
        //ACTUALIZAMOS LA DIRECCION DE LA EMPRESA
        direccionEmp.setSolCodigo(perJuridica);
        delegadoDireccion.edit(direccionEmp);

//        ReasignaCapitulo();

        //ACTUALIZAMOS LA PRE - INSCRIPCION
        preinscrip.setEcaCodigo(espCap);
        preinscrip.setEmpCodigo(perJuridica);
        preinscrip.setFopCodigo(formProf);
        preinscrip.setPerCodigo(colegiado.getPersonaNatural());
        delegado.edit(preinscrip);

        cita = new Cita();
        cita = delegadoCita.buscaCitaXDNI(colegiado.getPersonaNatural().getPerNroDNI());
        if(cita != null){
            estado = new EstadoCita();
            estado.setEciCodigo(3);
            cita.setEstado(estado);
            delegadoCita.edit(cita);
            cita = new Cita();
        }
        codigoColegiado = colegiado.getPersonaNatural().getSolCodigo();
        tipoColegiado = colegiado.getTipoColegiado().getTcoCodigo();
        DNIColegiado = colegiado.getPersonaNatural().getPerNroDNI();
        nombreColegiado = colegiado.getPersonaNatural().getNombreColegiado();

        inicializa();

        return "generarDoc";
        }catch(Exception ex){
            return null;
        }
    }

        //REASIGNAR CAPITULO
    public String ReasignaCapitulo(){

        try{
        espCap = new EspecialidadCapitulo();
        espCap = delegadoEspCap.devuelveCapitulo(formProf.getEspCodigo().getEspCodigo());
        //guardamos el capitulo en el que se encuentra un colegiado
        colEsp.setColCodigo(colegiado);
        colEsp.setEcaCodigo(espCap);
        colEsp.setCesPrioridad(true);
        delegadoColEsp.edit(colEsp);
        return null;
        }catch(Exception ex){
            return  null;
        }
    }
    
    public String generarDocumentos(){

        codigoColegiado = colegiado.getPersonaNatural().getSolCodigo();
        tipoColegiado = colegiado.getTipoColegiado().getTcoCodigo();
        DNIColegiado = colegiado.getPersonaNatural().getPerNroDNI();
        nombreColegiado = colegiado.getPersonaNatural().getNombreColegiado();
        pagoColegiatura = preinscrip.getPrePagoColegiatura();
        
        inicializa();
        return "generarDoc";
    }

    //BUSCAMOS EL CAPITULO DE UN PREINSCRITO

    public String buscaCapitulo(){
        try{
        espCap = delegadoEspCap.devuelveCapitulo(formProf.getEspCodigo().getEspCodigo());
        }catch(Exception ex){
            return null;
        }
        return null;
    }
    
    //BUSCAMOS DIRECCION DE UN PRE -INSCRITO
    public String buscaDirPreInscrito(){
    try{
        direccion = new DireccionPersona();
        direccion = delegadoDireccion.buscaDireccionColegiado(colegiado.getPersonaNatural().getSolCodigo());
        departamento = direccion.getDisCodigo().getProCodigo().getDepCodigo().getDepNombre();
        provincia = direccion.getDisCodigo().getProCodigo().getProNombre();
        System.out.println("departamento : "+departamento);
        System.out.println("provincia : "+provincia);
        if(direccion == null){
            direccion = new DireccionPersona();
        }
        }catch(Exception ex){
            System.out.println(ex);
        }
        return null;
    }

    //AGREGAMOS TELEFONOS AL PRE-INSCRITO
    public String agregarTelefono(){

        telefono.setSolCodigo(colegiado.getPersonaNatural());
        delegadoTelefono.create(telefono);
        telefono = new TelefonoSolicitante();
        ListaTelefonosPreInscrit();
        return null;
    }

    //ELIMINAMOS TELEFONOS DEL PRE - INSCRITO
    public String eliminaTelefono(){

        delegadoTelefono.remove(telefono);
        telefono = new TelefonoSolicitante();
        return null;
    }

    //LISTAMOS LOS TELEFONOS DEL PRE - INSCRITO
    public List<TelefonoSolicitante> ListaTelefonosPreInscrit(){
        try{
            listaTelefonoPreInscrito = new ArrayList<TelefonoSolicitante>();
        return listaTelefonoPreInscrito = delegadoTelefono.listaTelefonoColegiado(colegiado.getPersonaNatural().getSolCodigo());
        }catch(Exception ex){
            return null;
        }
    }

    //BUSCAMOS LA FORMACION PROFESIONAL DEL PRE - INSCRITO

    public String buscaFormacionPreinscrit(){

        try{
        formProf = new FormacionProfesional();
        formProf = delegadoFormacion.buscaTitulo(colegiado);
//        formProf = delegadoFormacion.buscaTitulo(colegiado.getSolCodigo());
        }catch(Exception ex){
            return null;
        }
        return null;

    }

    //BUSCAMOS LA PREINSCRIPCION
    public String buscaPreInscripcion(){

        try{
           preinscrip = new Preinscripcion();
           preinscrip = delegado.buscaPreInscripcion(colegiado.getPersonaNatural().getSolCodigo());
        }catch(Exception ex){            
            return null;
        }
        return null;
    }

    //BUSCAMOS LA EMPRESA EN LA QUE TRABAJA EL PRE - INSCRITO
    public String buscaEmpPreInscrito(){

        try{
            perJuridica = new PersonaJuridica();
            if(preinscrip.getEmpCodigo().getSolCodigo() != null){
               perJuridica = delegadoJuridico.buscaJuridica(preinscrip.getEmpCodigo().getSolCodigo());
            }else{
                perJuridica = new PersonaJuridica();
            }
        }catch(Exception ex){
          return null;
        }
        return null;
    }

    //BUSCAMOS LA DIRECCION DE LA EMPRESA
    public String buscaDirEmpresa(){

        try{
            direccionEmp = new DireccionPersona();
            if(preinscrip.getEmpCodigo().getSolCodigo() != null){
                direccionEmp = delegadoDireccion.buscaDireccionColegiado(preinscrip.getEmpCodigo().getSolCodigo());
            }else{
                direccionEmp = new DireccionPersona();
            }
        }catch(Exception ex){
          return null;
        }
        return null;
    }

    //LISTAMOS LOS TELEFONOS DE LA EMPRESA
    public List<TelefonoSolicitante> listaPreTelefonosEmp(){
        try{
        listaTelefonoEmpresas = new ArrayList<TelefonoSolicitante>();
        return listaTelefonoEmpresas = delegadoTelefono.listaTelefonoColegiado(perJuridica.getSolCodigo());
        }catch(Exception ex){
            return null;
        }
    }

    //AGREGAMOS TELEFONOS A LA EMPRESA
    public String agregarTelefonoEmp(){

      try{
        telefonoEmp.setSolCodigo(perJuridica);
        delegadoTelefono.create(telefonoEmp);
        telefonoEmp = new TelefonoSolicitante();
        listaPreTelefonosEmp();
        return null;
      }catch(Exception ex){
          return null;
      }
    }

    //ELIMINAMOS TELEFONOS DE LA EMPRESA
    public String eliminaTelefonoEmp(){

        delegadoTelefono.remove(telefonoEmp);
        telefonoEmp = new TelefonoSolicitante();
        return null;
    }

    //AGREGAR OTRA ESPECIALIDAD AL PRE - INSCRITO
    public String nuevaEspecialidad(){

        return "nuevaEsp";
    }
    
    public String agregaEspecialidad(){

        try{
            ColegiadoEspecialidad colEsp1;
            colEsp1 = new ColegiadoEspecialidad();

            colEsp1  = delegadoColEsp.colegiadoEsp(colegiado.getSolCodigo());
            Integer codigoEsp = colEsp1.getEcaCodigo().getEspCodigo().getEspCodigo();

            Integer codigoEsp2 = especial.getEspCodigo();

            if(codigoEsp != codigoEsp2){

                espCap2 = new EspecialidadCapitulo();
                colEsp2 = new ColegiadoEspecialidad();

                espCap2 = delegadoEspCap.devuelveCapitulo(especial.getEspCodigo());

                colEsp2.setColCodigo(colegiado);
                colEsp2.setEcaCodigo(espCap2);
                colEsp2.setCesPrioridad(false);
                colEsp2.setCesActivo(true);
                delegadoColEsp.create(colEsp2);

                espCap2 = new EspecialidadCapitulo();
                colEsp2 = new ColegiadoEspecialidad();
                universidad = new Universidad();
                especial = new Especialidad();
                getListaColESp();
                mostrarMensaje("Exito", "Especialidad registrada...", FacesMessage.SEVERITY_INFO);

            }else{
                espCap2 = new EspecialidadCapitulo();
                colEsp2 = new ColegiadoEspecialidad();
                universidad = new Universidad();
                especial = new Especialidad();
                getListaColESp();
                mostrarMensaje("Error", "La Especialidad ya esta registrada...", FacesMessage.SEVERITY_ERROR);
            }

        return null;
        }catch(Exception ex){
            return null;
        }
    }

    public String regresarPreFicha(){

        return "retornar";
    }

    public List<ColegiadoEspecialidad> getListaColESp(){

        return delegadoColEsp.listaEspColegiado(colegiado.getSolCodigo());
    }

    // subir archivo

    private UploadedFile upFile;
    boolean rendSuccess = false;
    boolean rendFailure = false;
    private String imagen;

    public boolean isRendFailure() {
        return rendFailure;
    }

    public void setRendFailure(boolean rendFailure) {
        this.rendFailure = rendFailure;
    }

    public boolean isRendSuccess() {
        return rendSuccess;
    }

    public void setRendSuccess(boolean rendSuccess) {
        this.rendSuccess = rendSuccess;
    }

    public UploadedFile getUpFile() {
        return upFile;
    }

    public void setUpFile(UploadedFile upFile) {
        this.upFile = upFile;
    }

    public String getImagen() {
        return imagen;
    }

    public void setImagen(String imagen) {
        this.imagen = imagen;
    }

    public String upload() throws IOException {

        String extension;
        try {

                //validar el tipo de imagen  quitar despues de la expo
             if(colImagen.getTimCodigo().getTimCodigo()==1){
                   dirImagen=dirImagen.concat("fotos/");
                   //anchoFoto = 640;
                }else{
                    if(colImagen.getTimCodigo().getTimCodigo()==2){
                        dirImagen=dirImagen.concat("dniFrente/");
                    }else{
                        if(colImagen.getTimCodigo().getTimCodigo()==3){
                            dirImagen=dirImagen.concat("dniEspalda/");
                        }else{
                            if(colImagen.getTimCodigo().getTimCodigo()==4){
                                dirImagen=dirImagen.concat("tituloFrente/");
                            }else{
                                if(colImagen.getTimCodigo().getTimCodigo()==5){
                                   dirImagen=dirImagen.concat("tituloEspaldaTitulo/");
                                }else{
                                    if(colImagen.getTimCodigo().getTimCodigo()==6){
                                        dirImagen=dirImagen.concat("resolucion/");
                                    }else{
                                        if(colImagen.getTimCodigo().getTimCodigo()==10){
                                        dirImagen=dirImagen.concat("sello/");
                                        }else{
                                           if(colImagen.getTimCodigo().getTimCodigo()==9){
                                              dirImagen=dirImagen.concat("firma/");
                                             }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
                
                extension = upFile.getName().substring(upFile.getName().length()-4,upFile.getName().length());
                InputStream stream = upFile.getInputStream();
                dirImagen = dirImagen.concat(colegiado.getPersonaNatural().getPerNroDNI().concat(extension));
                OutputStream out=new FileOutputStream(dirImagen);
                long size = upFile.getSize();
                byte[] buffer = new byte[(int) size];
                stream.read(buffer, 0, (int) size);
                out.write(buffer, 0, (int) size);                
                stream.close();
                out.close();
                guardaImagen();
                rendSuccess = true;
                rendFailure = false;
                setImagen(upFile.getName());
                System.out.println("File Upload Successful.");               
                return "ok";

        } catch (Exception ioe) {
            System.out.println("File Upload Unsuccessful.");
            System.out.println("errorrrr" + ioe.toString());
            rendSuccess = false;
            rendFailure = true;
            return "no";
        }
    }

    public String guardaImagen(){
        try{
             //almacenamos las imagenes del colegiado
               colImagen.setColCodigo(colegiado);
               colImagen.setCimRuta(dirImagen);
               colImagen.setCimFechaRegistro(new Date());
               delegadoImagen.create(colImagen);

               perNatural.setPertieneImagen(true);
               delegadoNatural.edit(perNatural);
               colImagen = new ColegiadoImagen();
////               dirImagen = "c:\\imgprueba\\";
               dirImagen = "/modulos/colegiatura/archivos/";
               return null;
        }catch(Exception ex){
            return null;
        }
    }

     //Metodo que permite redimensionar una imagen antes de subirla al servidor.

    public void redimensionaJPG(Integer ancho,String ficheroEntrada,String ficheroSalida){

    try{

        BufferedImage input = ImageIO.read(new File(ficheroEntrada));

        int w = input.getWidth(), h = input.getHeight();

        BufferedImage output = new BufferedImage(ancho*w/w,ancho*h/w, BufferedImage.TYPE_3BYTE_BGR);

        Graphics2D g = output.createGraphics();

        g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR);

        g.drawImage(input,0,0,ancho*w/w,ancho*h/w, null);

        ImageIO.write(output, "jpg", new File(ficheroSalida));

    }catch(Exception ex){

        ex.printStackTrace();
    }

    }

    public List<ColegiadoImagen> getListaPorColegiado(){

        listaColegiadoImagen = null;
        return listaColegiadoImagen = delegadoImagen.listaPorColegiado(colegiado);
    }

    public String removerImagen(){

        try{
            File fichero = new File(colImagen.getCimRuta());

                if(fichero.delete()){
                    mostrarMensaje("Exito: ", "Se elimino el archivo Correctamnete.", FacesMessage.SEVERITY_INFO);
                }else{
                    mostrarMensaje("ERROR:_", "No se pudo eliminar el archivo", FacesMessage.SEVERITY_ERROR);
                }

            delegadoImagen.remove(colImagen);
            colImagen = new ColegiadoImagen();
            return null;
        }catch(Exception ex){
            System.out.println("error: "+ex.getMessage());
            return null;
        }
    }

    public String nuevoTitulo(){

        if(nuevoTitulo==false){
            nuevoTitulo = true;
        }else{
            nuevoTitulo = false;
        }
        return null;
    }

    public String generacionPago(){

        if(generarPago==false){
            generarPago = true;
        }

        return null;
    }

    public String creaPagoColegiatura(){

        preInscripcion = new Preinscripcion();
        if(coutas>1 || coutas<=8){
           delegadoPagoColegiatura.crearDeudaParaColegiatura(DNIColegiado, coutas, new Date());
        }
        if(coutas>8){
            coutas = 8;
            delegadoPagoColegiatura.crearDeudaParaColegiatura(DNIColegiado, coutas, new Date());
        }
        if(coutas<1){
            coutas = 1;
            delegadoPagoColegiatura.crearDeudaParaColegiatura(DNIColegiado, coutas, new Date());
        }
        preInscripcion = delegado.buscaPreInscripcion(codigoColegiado);
        preInscripcion.setPrePagoColegiatura(true);
        delegado.edit(preInscripcion);
        preInscripcion = new Preinscripcion();

        exito = true;
        deshabilita = true;
        return null;
    }

//retornamensaje
    public String salir(){
        tabber = "Personal";
        inicializa();
        return "retornarBuscarPersona";
    }

    public String exit(){
        tabber = "Personal";
        inicializa();
        return "retornarBuscaPersonaWeb";
    }


    public String cancelar(){
        inicializa();
        return "mensaje";
    }


    public void mostrarMensaje(String resumen, String detalle, FacesMessage.Severity severidad) {
        try {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        } catch (Exception e) {
            FacesMessage fm = new FacesMessage(severidad, resumen, detalle);
            FacesContext.getCurrentInstance().addMessage(fm.toString(), fm);
        }
    }

    //editar la ficha en WEB

    public String btnEditaPersonal(){

        delegadoNatural.edit(perNatural);
        delegadoColegiado.edit(colegiado);
        tabber = "Domicilio";
        return null;
    }

    public String btnEditaDomicilio(){

        //ACTUALIZAMOS LA DIRECCION DEL PRE - INSCRITO
        direccionPersona.setSolCodigo(colegiado.getPersonaNatural());
        delegadoDireccion.edit(direccionPersona);
        tabber = "Profesional";
        return null;
    }

    public String btnEditaFormacion(){

        formProf.setColegiado(colegiado);
        titulo = delegadoTitulo.find(titCodigo);
        formProf.setTitulo(titulo);
        formProf.setEspCodigo(titulo.getEspCodigo());
        delegadoFormacion.edit(formProf);
        ReasignaCapitulo();
        tabber = "laboral";
        return null;
    }

    public String btnEditaLaboral(){

        if(estados ==false){

            delegadoSolicitante.edit(perNatural);
            delegadoColegiado.edit(colegiado);
            tabber = "Deporte";
        }else{
            //ACTUALIZA LA EMPRESA
            delegadoJuridico.edit(perJuridica);

            //ACTUALIZAMOS LA DIRECCION DE LA EMPRESA
            direccionEmp.setSolCodigo(perJuridica);
            delegadoDireccion.edit(direccionEmp);
            tabber = "Deporte";
        }

        return null;
    }

    public String atrasPersonal(){

        tabber = "Personal";
        return null;
    }

    public String atrasDomicilio(){

        tabber = "Domicilio";
        return null;
    }

    public String atrasFormacion(){

        tabber = "Profesional";
        return null;
    }

    public String atrasLaboral(){

        tabber = "laboral";
        return null;
    }

    public String atrasDeporte(){

        tabber = "Deporte";
        return null;
    }

    public String cerrarVentana(){

        inicializa();
        return null;
    }


    //REPORTE DE FICHA DE PREINSCRIPCION ANTIGUA
    private DireccionPersona direccionPreinscrito = new DireccionPersona();
    private Preinscripcion preInscripcion = new Preinscripcion();
    List<TelefonoSolicitante> listaTelefono = new ArrayList<TelefonoSolicitante>();
    List<TelefonoSolicitante> listaCelular = new ArrayList<TelefonoSolicitante>();

    public DireccionPersona getDireccionPreinscrito() {
        return direccionPreinscrito;
    }

    public void setDireccionPreinscrito(DireccionPersona direccionPreinscrito) {
        this.direccionPreinscrito = direccionPreinscrito;
    }

    public List<TelefonoSolicitante> getListaCelular() {
        return listaCelular;
    }

    public void setListaCelular(List<TelefonoSolicitante> listaCelular) {
        this.listaCelular = listaCelular;
    }

    public List<TelefonoSolicitante> getListaTelefono() {
        return listaTelefono;
    }

    public void setListaTelefono(List<TelefonoSolicitante> listaTelefono) {
        this.listaTelefono = listaTelefono;
    }

    public Preinscripcion getPreInscripcion() {
        return preInscripcion;
    }

    public void setPreInscripcion(Preinscripcion preInscripcion) {
        this.preInscripcion = preInscripcion;
    }
    

    @SuppressWarnings("static-access")
    public String exportarFichaPreInscripcionAntigua() {

        Map parametros = new HashMap();
        List listaPre = new ArrayList();
        direccionPreinscrito = new DireccionPersona();
//        List<DireccionPersona> listaDireccion;
        preInscripcion = new Preinscripcion();
        listaTelefono = new ArrayList<TelefonoSolicitante>();
        listaCelular = new ArrayList<TelefonoSolicitante>();
//        listaDireccion = new ArrayList<DireccionPersona>();
        ColegiadoImagen foto = new ColegiadoImagen();
        ColegiadoImagen firma = new ColegiadoImagen();

        try{

//          System.out.println("codigo : "+codigoColegiado);
          preInscripcion = delegado.buscaPreInscripcion(codigoColegiado);

//          System.out.println("preinscripcion : "+preInscripcion);
//          listaDireccion = delegadoDireccion.buscaDireccColegiado(preInscripcion.getPerCodigo().getSolCodigo());
          direccionPreinscrito = delegadoDireccion.buscaDireccionColegiado(preInscripcion.getPerCodigo().getSolCodigo());
          listaTelefono = delegadoTelefono.listaFijos(preInscripcion.getPerCodigo().getSolCodigo());
          listaCelular = delegadoTelefono.listaCelular(preInscripcion.getPerCodigo().getSolCodigo());

           String dirEmpresa = " ";
           parametros.put("dirEmpresa", dirEmpresa);
           String numEmp = "";
           parametros.put("numEmp", numEmp);
//
//        direccionPreinscrito = delegadoDireccion.buscaDireccionColegiado(preInscripcion.getPerCodigo().getSolCodigo());
//        listaTelefono = delegadoTelefono.listaFijos(codigoColegiado);
//        listaCelular = delegadoTelefono.listaCelular(codigoColegiado);

        //DECLARACION DE PARAMETROS
        if(listaTelefono.size() <= 0){
            String telefonoIns = "";
            parametros.put("telefonoIns", telefonoIns);
        }
        if(listaTelefono.size() > 0){
            String telefonoIns = listaTelefono.get(0).getTsoCodciudad()+" - "+listaTelefono.get(0).getTsoNumero();
            parametros.put("telefonoIns", telefonoIns);
        }
        if(listaCelular.size() <= 0){
            String numCelular = "";
            parametros.put("numCelular", numCelular);
        }
        if(listaCelular.size() > 0){
            String numCelular = listaCelular.get(0).getTsoCodciudad()+" - "+listaCelular.get(0).getTsoNumero();
            parametros.put("numCelular", numCelular);
        }
        if(direccionPreinscrito ==null){
            String direccion1 = " ";
            String dpto = " ";
            String provincia = " ";
            String distrito = " ";
            String zona = " ";
            String urbanizacion = " ";

            parametros.put("direccion", direccion1);
            parametros.put("dpto", dpto);
            parametros.put("provincia", provincia);
            parametros.put("distrito", distrito);
            parametros.put("zona", zona);
            parametros.put("urbanizacion", urbanizacion);
        }
        if(direccionPreinscrito !=null){
            String direccion1 = direccionPreinscrito.getDpeDireccion();
            String dpto = direccionPreinscrito.getDisCodigo().getProCodigo().getDepCodigo().getDepNombre();
            String provincia = direccionPreinscrito.getDisCodigo().getProCodigo().getProNombre();
            String distrito = direccionPreinscrito.getDisCodigo().getDisNombre();
            String zona = direccionPreinscrito.getZonaCodigo().getZonNombre()+" "+direccionPreinscrito.getDpenombreZona();

            parametros.put("direccion", direccion1);
            parametros.put("dpto", dpto);
            parametros.put("provincia", provincia);
            parametros.put("distrito", distrito);
            parametros.put("zona", zona);
        }

        String universidad1 = preInscripcion.getFopCodigo().getUniCodigo().getUniNombre();
        String instAcademica = preInscripcion.getFopCodigo().getFopinstAcademica();
        String titulonuevo = preInscripcion.getFopCodigo().getFopnuevoTitulo();

        HttpServletRequest request1 = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/logocipcdll.gif";
        String logo = request1.getRealPath(Imagen);
        String nombreFicha = preInscripcion.getPerCodigo().getNombreCompleto();

        parametros.put("logo", logo);
        parametros.put("instAcademica", instAcademica);
        parametros.put("titulonuevo",titulonuevo);
        parametros.put("universidad", universidad1);

        //imagenes
        foto = delegadoImagen.buscaFoto(codigoColegiado);
        firma = delegadoImagen.buscaFiram(codigoColegiado);
        
        if(foto != null){
            parametros.put("foto", foto.getCimRuta());
        }else{
            HttpServletRequest requestFoto = ControladorAbstracto.getRequest();
            String rutafoto = "/imagenColegiatura/FOTOVACIA.jpg";
            String fotoVacia = requestFoto.getRealPath(rutafoto);
            parametros.put("foto", fotoVacia);
        }

        if(firma != null){
            parametros.put("firma", firma.getCimRuta());
        }else{
            HttpServletRequest requestFirma = ControladorAbstracto.getRequest();
            String rutafirma = "/imagenColegiatura/FIRMAVACIA.jpg";
            String firmaVacia = requestFirma.getRealPath(rutafirma);
            parametros.put("firma", firmaVacia);
        }

        listaPre.add(preInscripcion);

        if (listaPre.size() > 0) {
            RutaCarpetaReporte ruta = new RutaCarpetaReporte();
            String rutaJasper = "", rutaPDF = "";
            rutaJasper = ruta.getRutaReporte() + "rptPreInscripcionAntigua2.jasper";
            rutaPDF = ruta.getRutaPDFpreInscripcion()+"frenteFicha/"+ nombreFicha+"-Frente.pdf"; //ruta Original
//            rutaPDF = ruta.getRuta() + nombreFicha+"-Frente.pdf"; //"rptPreInscripcionAntigua.pdf";//ruta windows prueba
            //logo windows:         C:/Reportes/logocipcdll.gif
            //rutaPDF = ruta.getRutaPDF() + "rptFormato.pdf";   //ruta linux server
            //logo linux:          /root/Desktop/pdf/logocipcdll.gif
            try {
                HttpServletRequest request = ControladorAbstracto.getRequest();
                rutaJasper = request.getRealPath(rutaJasper);
            //rutaPDF = request.getRealPath(rutaPDF);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }

            try {
                File entrada = new File(rutaJasper);
                JasperPrint print = JasperFillManager.fillReport(new FileInputStream(entrada), parametros, new JRBeanCollectionDataSource(listaPre));
                if (ruta.generarPDF(rutaPDF, print)) {
                }
                
            } catch (Exception e) {
                System.out.println("-------" + e.toString());
            }
        } else {
            mostrarMensaje("Error", "Deben existir datos en la Lista para exportar", FacesMessage.SEVERITY_ERROR);
        }

      }catch(Exception ex){
            return null;
     }
        return "";
    }

    @SuppressWarnings("static-access")
    public String exportarFichaPreInscripcion() {

        Map parametros = new HashMap();
        List listaPre = new ArrayList();
        direccionPreinscrito = new DireccionPersona();
        preInscripcion = new Preinscripcion();
        listaTelefono = new ArrayList<TelefonoSolicitante>();
        listaCelular = new ArrayList<TelefonoSolicitante>();
        ColegiadoImagen foto = new ColegiadoImagen();
        ColegiadoImagen firma = new ColegiadoImagen();

        preInscripcionController pi = (preInscripcionController) ControladorAbstracto.getBean("preInscripcionController");
     try{

           preInscripcion = delegado.buscaPreInscripcion(codigoColegiado);

            String dirEmpresa = " ";
            parametros.put("dirEmpresa", dirEmpresa);
            String numEmp = "";
            parametros.put("numEmp", numEmp);

            direccionPreinscrito = delegadoDireccion.buscaDireccionColegiado(preInscripcion.getPerCodigo().getSolCodigo());
            listaTelefono = delegadoTelefono.listaFijos(codigoColegiado);
            listaCelular = delegadoTelefono.listaCelular(codigoColegiado);

        //DECLARACION DE PARAMETROS
        if(listaTelefono.size() <= 0){
            String telefonoIns = "";
            parametros.put("telefonoIns", telefonoIns);

        }
        if(listaTelefono.size() > 0){
            String telefonoIns = listaTelefono.get(0).getTsoCodciudad()+" - "+listaTelefono.get(0).getTsoNumero();
            parametros.put("telefonoIns", telefonoIns);
        }

        if(listaCelular.size() <= 0){
            String numCelular = "";
            parametros.put("numCelular", numCelular);

        }
        if(listaCelular.size() > 0){
            String numCelular = listaCelular.get(0).getTsoCodciudad()+" - "+listaCelular.get(0).getTsoNumero();
            parametros.put("numCelular", numCelular);
        }

        if(direccionPreinscrito == null){
            String direccion1 = " ";
            String dpto = " ";
            String provincia = " ";
            String distrito = " ";
            String zona = " ";

            parametros.put("direccion", direccion1);
            parametros.put("dpto", dpto);
            parametros.put("provincia", provincia);
            parametros.put("distrito", distrito);
            parametros.put("zona", zona);

        }
        if(direccionPreinscrito !=null){
            String direccion1 = direccionPreinscrito.getDpeDireccion();
            String dpto = direccionPreinscrito.getDisCodigo().getProCodigo().getDepCodigo().getDepNombre();
            String provincia = direccionPreinscrito.getDisCodigo().getProCodigo().getProNombre();
            String distrito = direccionPreinscrito.getDisCodigo().getDisNombre();
            String zona = direccionPreinscrito.getZonaCodigo().getZonNombre()+" "+direccionPreinscrito.getDpenombreZona();

            parametros.put("direccion", direccion1);
            parametros.put("dpto", dpto);
            parametros.put("provincia", provincia);
            parametros.put("distrito", distrito);
            parametros.put("zona", zona);

        }

        String universidad1 = preInscripcion.getFopCodigo().getUniCodigo().getUniNombre();
        String instAcademica = preInscripcion.getFopCodigo().getFopinstAcademica();
        String titulonuevo = preInscripcion.getFopCodigo().getFopnuevoTitulo();

        HttpServletRequest request1 = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/logocipcdll.gif";
        String logo = request1.getRealPath(Imagen);

        parametros.put("logo", logo);
        parametros.put("instAcademica", instAcademica);
        parametros.put("titulonuevo",titulonuevo);
        parametros.put("universidad", universidad1);

        String nombreFicha = preInscripcion.getPerCodigo().getNombreCompleto();

        foto = delegadoImagen.buscaFoto(codigoColegiado);
        firma = delegadoImagen.buscaFiram(codigoColegiado);

        if(foto != null){
            parametros.put("foto", foto.getCimRuta());
        }else{
            HttpServletRequest requestFoto = ControladorAbstracto.getRequest();
            String rutafoto = "/imagenColegiatura/FOTOVACIA.jpg";
            String fotoVacia = requestFoto.getRealPath(rutafoto);
            parametros.put("foto", fotoVacia);
        }

        if(firma != null){
            parametros.put("firma", firma.getCimRuta());
        }else{
            HttpServletRequest requestFirma = ControladorAbstracto.getRequest();
            String rutafirma = "/imagenColegiatura/FIRMAVACIA.jpg";
            String firmaVacia = requestFirma.getRealPath(rutafirma);
            parametros.put("firma", firmaVacia);
        }

        listaPre.add(preInscripcion);

        if (listaPre.size() > 0) {
            RutaCarpetaReporte ruta = new RutaCarpetaReporte();
            String rutaJasper = "", rutaPDF = "";
            rutaJasper = ruta.getRutaReporte() + "rptPreInscripcion.jasper"; //con foto//"rptPreInscripcion2.jasper";

//            rutaPDF = ruta.getRuta()+ nombreFicha+"-Frente2.pdf";// frente2 ruta windows prueba
            rutaPDF = ruta.getRutaPDFpreInscripcion()+"frenteFicha/"+ nombreFicha+"-Frente.pdf";

            //logo windows:         C:/Reportes/logocipcdll.gif
            //rutaPDF = ruta.getRutaPDF() + "rptFormato.pdf";   //ruta linux server
            //logo linux:          /root/Desktop/pdf/logocipcdll.gif
            try {
                HttpServletRequest request = ControladorAbstracto.getRequest();
                rutaJasper = request.getRealPath(rutaJasper);
            //rutaPDF = request.getRealPath(rutaPDF);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }

            try {
                File entrada = new File(rutaJasper);
                JasperPrint print = JasperFillManager.fillReport(new FileInputStream(entrada), parametros, new JRBeanCollectionDataSource(listaPre));
                if (ruta.generarPDF(rutaPDF, print)) {
                }
            } catch (Exception e) {
                System.out.println("-------" + e.toString());
            }
        } else {
            mostrarMensaje("Error", "Deben existir datos en la Lista para exportar", FacesMessage.SEVERITY_ERROR);
        }
      }catch(Exception ex){
            return null;
     }
        return "";
    }

//GENERAR ESPALDA FICHA DE INSCRIPCION

    private Directivos presidente = new Directivos();
    private Directivos vocal1  = new Directivos();
    private Directivos vocal2 = new Directivos();
    private Directivos decano = new Directivos();
    private Directivos secretariaGeneral = new Directivos();
    private DirectivosDelegate delegadoDirectivo = new DirectivosDelegate();

    public Directivos getDecano() {
        return decano;
    }

    public void setDecano(Directivos decano) {
        this.decano = decano;
    }

    public DirectivosDelegate getDelegadoDirectivo() {
        return delegadoDirectivo;
    }

    public void setDelegadoDirectivo(DirectivosDelegate delegadoDirectivo) {
        this.delegadoDirectivo = delegadoDirectivo;
    }

    public Directivos getPresidente() {
        return presidente;
    }

    public void setPresidente(Directivos presidente) {
        this.presidente = presidente;
    }

    public Directivos getSecretariaGeneral() {
        return secretariaGeneral;
    }

    public void setSecretariaGeneral(Directivos secretariaGeneral) {
        this.secretariaGeneral = secretariaGeneral;
    }

    public Directivos getVocal1() {
        return vocal1;
    }

    public void setVocal1(Directivos vocal1) {
        this.vocal1 = vocal1;
    }

    public Directivos getVocal2() {
        return vocal2;
    }

    public void setVocal2(Directivos vocal2) {
        this.vocal2 = vocal2;
    }


    @SuppressWarnings("static-access")
    public String exportarFichaPreInscripcionEspalda() {

        Map parametros = new HashMap();
        List listaPre = new ArrayList();
        preInscripcionController pi = (preInscripcionController) ControladorAbstracto.getBean("preInscripcionController");
        try{

        preInscripcion = delegado.buscaPreInscripcion(codigoColegiado);

        presidente = delegadoDirectivo.buscaPresidente();
        vocal1 = delegadoDirectivo.buscaPrimerVocal();
        vocal2 = delegadoDirectivo.buscaSegundoVocal();
        decano = delegadoDirectivo.buscaDecano();
//        secretario = delegadoDirectivo.buscaDirSecretario();
        secretariaGeneral = delegadoDirectivo.buscaDirSecretarioGeneral();

//        consejo = delegadoConsejo.buscarActivo();

        listaPre.add(preInscripcion);

        //DECLARACION DE PARAMETROS
       String universidad1 = preInscripcion.getFopCodigo().getUniCodigo().getUniNombre();
       String fechaRecGrado = preInscripcion.getFopCodigo().getFechaRecepGrado();

       try{
           if(preInscripcion.getFopCodigo().getFopresRecHoja() != null){
           String hojas = preInscripcion.getFopCodigo().getFopresRecHoja();
           parametros.put("hojas", hojas);
        }else{
            String hojas = "";
            parametros.put("hojas", hojas);
        }
       }catch(Exception ex){
            String hojas = "";
            parametros.put("hojas", hojas);
       }
       String nombPresidente = presidente.getColCodigo().getPersonaNatural().getNombreApellido();
       String nroCipPresidente = presidente.getColCodigo().getColnumeroCip();
       String nombCompletoPresid = presidente.getColCodigo().getPersonaNatural().getNombreCompleto();

       String nombVocal1 = vocal1.getColCodigo().getPersonaNatural().getNombreApellido();
       String nroCipVocal1 = vocal1.getColCodigo().getColnumeroCip();

       String nombVocal2 = vocal2.getColCodigo().getPersonaNatural().getNombreApellido();
       String nroCipVocal2 = vocal2.getColCodigo().getColnumeroCip();

       String nombDecano = decano.getColCodigo().getPersonaNatural().getNombreCompleto();
       String nroCipDecano = decano.getColCodigo().getColnumeroCip();

//       String nombSecretario = secretario.getColCodigo().getNombreCompleto();
//       String nroCipSecretario = secretario.getColCodigo().getColnumeroCip();

       String nombSecGeneral = secretariaGeneral.getColCodigo().getPersonaNatural().getNombreCompleto();
       String nroCipSecGeneral = secretariaGeneral.getColCodigo().getColnumeroCip();
       String nombreFicha = preInscripcion.getPerCodigo().getNombreCompleto();
//       String logo = consejo.getCdeLogoReporte();
        //ENVIO DE PARAMETROS

        parametros.put("universidad", universidad1);
        parametros.put("fechaRecGrado", fechaRecGrado);
        parametros.put("nombPresidente", nombPresidente);
        parametros.put("nroCipPresidente", nroCipPresidente);
        parametros.put("nombCompletoPresid", nombCompletoPresid);
        parametros.put("nombVocal1", nombVocal1);
        parametros.put("nroCipVocal1", nroCipVocal1);
        parametros.put("nombVocal2", nombVocal2);
        parametros.put("nroCipVocal2", nroCipVocal2);
        parametros.put("nombDecano", nombDecano);
        parametros.put("nroCipDecano", nroCipDecano);
//        parametros.put("nombSecretario", nombSecretario);
//        parametros.put("nroCipSecretario",nroCipSecretario);
        parametros.put("nombSecGeneral", nombSecGeneral);
        parametros.put("nroCipSecGeneral",nroCipSecGeneral);

        HttpServletRequest request1 = ControladorAbstracto.getRequest();
        String Imagen = "/imagenColegiatura/logocipcdll.gif";
        String logo = request1.getRealPath(Imagen);
        parametros.put("logo", logo);

        if (listaPre.size() > 0) {
            RutaCarpetaReporte ruta = new RutaCarpetaReporte();
            String rutaJasper = "", rutaPDF = "";
            rutaJasper = ruta.getRutaReporte() + "rptPreInscripcionEspalda.jasper";
//            rutaPDF = ruta.getRuta() + nombreFicha+"-espaldaFicha.pdf"; //"rptPreInscripcionEspalda.pdf";//ruta windows prueba
            rutaPDF = ruta.getRutaPDFpreInscripcion()+"espaldaFicha/"+ nombreFicha+"-Espalda.pdf";

            //logo windows:         C:/Reportes/logocipcdll.gif
            //rutaPDF = ruta.getRutaPDF() + "rptFormato.pdf";   //ruta linux server
            //logo linux:          /root/Desktop/pdf/logocipcdll.gif
            try {
                HttpServletRequest request = ControladorAbstracto.getRequest();
                rutaJasper = request.getRealPath(rutaJasper);
            //rutaPDF = request.getRealPath(rutaPDF);
            } catch (Exception e) {
                System.out.println(e.getMessage());
            }

            try {
                File entrada = new File(rutaJasper);
                JasperPrint print = JasperFillManager.fillReport(new FileInputStream(entrada), parametros, new JRBeanCollectionDataSource(listaPre));
                if (ruta.generarPDF(rutaPDF, print)) {
                }
            } catch (Exception e) {
                System.out.println("-------" + e.toString());
            }
        } else {
            mostrarMensaje("Error", "Deben existir datos en la Lista para exportar", FacesMessage.SEVERITY_ERROR);
        }
       }catch(Exception ex){
            return null;
       }
        return "";
    }
   
  //AUTOCOMPLETAR UNIVERSIDADES

   public List<Universidad> autocompletarUnis(Object event) {
        List<Universidad> lista = new ArrayList();
        String cond = event.toString().toUpperCase();
        try {
            lista = delegadoUniversidad.listarUniversidadesSugesstion(cond);
        } catch (Exception ex) {
        }
        return lista;
    }

    public String agregarUni() {
        try {
            formProf.setUniCodigo(uniDestino);
            uniNombre = uniDestino.getUniNombre();

        } catch (Exception e) {
            return "";
        }
        return "";
    }
    
}
